
bin_tree_t *
parse_branch(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,
            reg_errcode_t *err)

{
  bool bVar1;
  undefined *puVar2;
  re_string_t *regexp_00;
  anon_union_4_5_a39f51ca_for_opr aVar3;
  regex_t *prVar4;
  re_token_t *prVar5;
  code *pcVar6;
  byte bVar23;
  int iVar7;
  anon_union_4_5_a39f51ca_for_opr aVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  bin_tree_t *pbVar12;
  re_state_table_entry *prVar13;
  byte *pbVar14;
  undefined1 *puVar15;
  re_bitset_ptr_t pbVar16;
  re_node_set *prVar17;
  uint uVar18;
  bin_tree_storage_t *pbVar19;
  re_dfastate_t *prVar20;
  Idx IVar21;
  reg_errcode_t rVar22;
  int *piVar24;
  bitset_word_t bVar25;
  uint uVar26;
  int *piVar27;
  re_context_type rVar28;
  bin_tree_t *pbVar29;
  uint *puVar30;
  re_charset_t *prVar31;
  char *pattern;
  regex_t *preg_00;
  anon_union_4_5_a39f51ca_for_opr aVar32;
  bin_tree_storage_t *pbVar33;
  bin_tree_t *pbVar34;
  anon_union_4_5_a39f51ca_for_opr aVar35;
  uint uVar36;
  anon_union_4_5_a39f51ca_for_opr aVar37;
  bin_tree_t *pbVar38;
  reg_syntax_t syntax_00;
  anon_union_4_5_a39f51ca_for_opr aVar39;
  re_dfa_t *prVar40;
  uchar *puVar41;
  re_context_type rVar42;
  anon_union_4_5_a39f51ca_for_opr aVar43;
  anon_union_4_5_a39f51ca_for_opr aVar44;
  undefined *puVar45;
  uint *puVar46;
  code *pcVar47;
  int iStack_190;
  anon_union_4_5_a39f51ca_for_opr aStack_188;
  bin_tree_t *pbStack_178;
  bin_tree_t *apbStack_174 [2];
  undefined1 auStack_16c [4];
  bin_tree_t *pbStack_168;
  bin_tree_t *pbStack_164;
  re_string_t rStack_160;
  char *pcStack_10c;
  anon_union_4_5_a39f51ca_for_opr aStack_108;
  re_string_t *prStack_104;
  re_dfa_t *prStack_100;
  anon_union_4_5_a39f51ca_for_opr aStack_fc;
  bin_tree_t *pbStack_f8;
  anon_union_4_5_a39f51ca_for_opr aStack_f4;
  int *piStack_f0;
  pthread_mutex_t pStack_ec;
  re_token_t t;
  
  puVar45 = PTR___stack_chk_guard_00075be8;
  regexp_00 = *(re_string_t **)PTR___stack_chk_guard_00075be8;
  aVar43 = (anon_union_4_5_a39f51ca_for_opr)preg->buffer;
  preg_00 = preg;
  aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;
  aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;
  aVar44.idx = nest;
  pbVar38 = (bin_tree_t *)err;
  aVar3.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);
  if ((*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)) {
    prVar4 = (regex_t *)(aVar43.idx + 0x40);
    prVar5 = (re_token_t *)(aVar43.idx + 0x38);
    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);
LAB_00051b68:
    bVar23 = token->field_0x4;
    aVar37 = aVar3;
    if ((bVar23 & 0xf7) != 2) {
      do {
        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;
        preg_00 = preg;
        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;
        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;
        aVar44.idx = nest;
        pbVar38 = (bin_tree_t *)err;
        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);
        if (*err == _REG_NOERROR) {
          aVar3.mbcset = aVar43.mbcset;
          aVar8 = aVar37;
          aVar39.mbcset = aVar43.mbcset;
          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;
        }
        else {
          aVar8.mbcset = aVar43.mbcset;
          aVar39 = aVar37;
          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {
            aVar35.sbcset = (re_bitset_ptr_t)0x0;
            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {
              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);
              postorder((bin_tree_t *)aVar37.mbcset,
                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);
            }
            aVar3.sbcset = (re_bitset_ptr_t)0x0;
            break;
          }
        }
        aVar3 = aVar8;
        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;
        t._4_1_ = 0x10;
        preg_00 = prVar4;
        aVar35 = aVar37;
        aVar32.mbcset = aVar43.mbcset;
        aVar44.sbcset = (re_bitset_ptr_t)&t;
        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);
        puVar2 = PTR_LAB_00075920;
        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {
          postorder((bin_tree_t *)aVar43.mbcset,
                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),
                    (void *)0x0);
          aVar35.sbcset = (re_bitset_ptr_t)0x0;
          preg_00 = (regex_t *)(puVar2 + 0x4588);
          postorder((bin_tree_t *)aVar37.mbcset,
                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);
          aVar3.sbcset = (re_bitset_ptr_t)0x0;
          *err = _REG_ESPACE;
          break;
        }
        bVar23 = token->field_0x4;
        aVar37.sbcset = aVar3.sbcset;
        if ((bVar23 & 0xf7) == 2) break;
      } while( true );
    }
  }
  else {
    aVar3.sbcset = (re_bitset_ptr_t)0x0;
  }
  if (regexp_00 == *(re_string_t **)puVar45) {
    return (bin_tree_t *)aVar3.sbcset;
  }
  puVar45 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar24 = *(int **)(puVar45 + 0x23eec);
  iVar7 = *(int *)(puVar45 + 0x23c7c);
  prVar40 = preg_00->buffer;
  aVar8.sbcset = (re_bitset_ptr_t)*piVar24;
  bVar25 = prVar40->completed_bkref_map;
  prVar4 = preg_00;
  aVar3 = aVar35;
  aVar37 = aVar32;
  pStack_ec.__data.__count =
       (uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,
                          (reg_errcode_t *)pbVar38);
  if (pbVar38->parent == (bin_tree_t *)0x0) {
    iVar9 = *(int *)(puVar45 + 0x23c7c);
LAB_00051d9c:
    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;
    iVar10 = *(int *)(puVar45 + 0x23c24);
    do {
      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;
      aVar3.idx = 0x800000;
      pStack_ec.__data.__count = (uint)aVar39;
      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')
      goto LAB_00051eb8;
      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);
      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;
      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;
      if ((bVar23 & 0xf7) == 2) {
        aVar37.sbcset = (re_bitset_ptr_t)0x0;
      }
      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||
              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {
        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;
        prVar40->completed_bkref_map = bVar25;
        prVar4 = preg_00;
        aVar37.sbcset =
             (re_bitset_ptr_t)
             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);
        if ((pbVar38->parent != (bin_tree_t *)0x0) &&
           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {
          aVar3.sbcset = (re_bitset_ptr_t)0x0;
          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {
            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);
            postorder((bin_tree_t *)aVar39.mbcset,
                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);
          }
          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;
          goto LAB_00051eb8;
        }
        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;
        prVar40->completed_bkref_map = (bitset_word_t)aVar43;
      }
      prVar4 = (regex_t *)syntax;
      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);
    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);
    pbVar38->parent = (bin_tree_t *)0xc;
    aVar3 = aVar39;
  }
  else {
    iVar9 = *(int *)(puVar45 + 0x23c7c);
    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)
    goto LAB_00051d9c;
    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;
  }
LAB_00051eb8:
  if ((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24) {
    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;
  }
  pcVar6 = *(code **)(puVar45 + 0x23eac);
  pcVar47 = re_compile_internal;
  (*pcVar6)();
  bVar23 = *(byte *)&(aVar8.mbcset)->nequiv_classes;
  pbVar12 = ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent;
  (aVar8.mbcset)->char_classes = (wctype_t *)aVar37;
  (aVar8.mbcset)->range_ends = (wchar_t *)0x0;
  (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;
  puVar46 = *(uint **)(pcVar6 + 0x23cc4);
  aVar39.mbcset = (re_charset_t *)(aVar8.mbcset)->mbchars;
  pbStack_178 = (bin_tree_t *)0x0;
  *(byte *)&(aVar8.mbcset)->nequiv_classes = bVar23 & 9;
  pcStack_10c = (char *)*puVar46;
  aStack_108 = aVar35;
  prStack_104 = regexp_00;
  prStack_100 = prVar40;
  aStack_fc = aVar32;
  pbStack_f8 = pbVar38;
  aStack_f4 = aVar44;
  piStack_f0 = (int *)syntax;
  pStack_ec.__data.__lock = (int)aVar43;
  pStack_ec.__data.__owner = (int)pcVar47;
  if (pbVar12 < (bin_tree_t *)0xa0) {
    aVar32.idx = 0xa0;
    aVar35 = aVar3;
    aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);
    if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {
      pbVar38 = (bin_tree_t *)0xc;
      goto LAB_000526ec;
    }
    (aVar8.mbcset)->mbchars = (wchar_t *)aVar39;
    ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;
  }
  pcVar47 = *(code **)(pcVar6 + 0x23bb0);
  aVar35.idx = 0xa0;
  aVar32.sbcset = (re_bitset_ptr_t)0x0;
  (aVar8.mbcset)->range_ends = (wchar_t *)0xa0;
  (*pcVar47)(aVar39.sbcset);
  *(int *)(aVar39.idx + 0x40) = 0x1f;
  if ((uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa) {
    aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);
    pcVar47 = *(code **)(pcVar6 + 0x23c08);
    ((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;
    bVar25 = (*pcVar47)(aVar44.idx * 8);
    *aVar39.sbcset = bVar25;
    if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {
      pbVar38 = (bin_tree_t *)0x0;
      pbVar33 = (bin_tree_storage_t *)0x1;
    }
    else {
      pbVar33 = (bin_tree_storage_t *)0x1;
      do {
        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);
        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);
      } while (pbVar33 <= aVar3.sbcset);
    }
    prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);
    ((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;
    pcVar47 = *(code **)(pcVar6 + 0x23c44);
    (aVar39.mbcset)->nranges = (Idx)prVar13;
    iVar7 = (*pcVar47)();
    pcVar47 = *(code **)(pcVar6 + 0x23b44);
    *(int *)(aVar39.idx + 0x5c) = iVar7;
    pbVar14 = (byte *)(*pcVar47)(0xe);
    aVar32.idx = (Idx)&DAT_00000055;
    if ((((*pbVar14 & 0xdf) == 0x55) &&
        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&
       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {
      iVar7 = 3;
      if (pbVar14[3] == 0x2d) {
        iVar7 = 4;
      }
      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);
      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);
      if (iVar7 == 0) {
        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =
             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;
      }
    }
    bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;
    iVar7 = *(int *)(aVar39.idx + 0x5c);
    (((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;
    if (iVar7 < 2) {
LAB_00052094:
      bVar25 = *aVar39.sbcset;
    }
    else {
      if ((bVar23 & 0x20) != 0) {
        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =
             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);
        goto LAB_00052094;
      }
      aVar32.idx = 1;
      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);
      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;
      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;
      iVar7 = 0;
      do {
        uVar26 = iVar7 << 3;
        uVar18 = 0;
        do {
          while( true ) {
            uVar36 = uVar18;
            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);
            if (uVar18 == 0xffffffff) break;
            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);
            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);
            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {
LAB_00052780:
              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =
                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;
            }
            uVar26 = uVar26 + 1;
            uVar18 = uVar36 + 1;
            if (uVar36 + 1 == 0x20) goto LAB_000527e4;
          }
          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;
          uVar26 = uVar26 + 1;
          uVar18 = uVar36 + 1;
        } while (uVar36 + 1 != 0x20);
LAB_000527e4:
        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);
        iVar7 = iVar7 + 4;
      } while (iVar7 != 0x20);
      bVar25 = *aVar39.sbcset;
      aVar32.idx = 0x20;
    }
    if ((bVar25 == 0) ||
       (iVar7 = *(int *)(pcVar6 + 0x23b8c),
       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))
    goto LAB_000526c8;
    pbStack_178 = (bin_tree_t *)0x0;
    if (iVar7 == 0) {
LAB_000520dc:
      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;
      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);
      rVar42 = aVar37.ctx_type & 0x400000;
      rStack_160.icase = rVar42 != 0;
      aVar43.idx._0_3_ = 0;
      aVar43.idx._3_1_ = rStack_160.icase;
      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;
      bVar25 = *(int *)(aVar39.idx + 0x5c);
      aVar32.idx = 1;
      if (pbVar38 == (bin_tree_t *)0x0) {
        aVar32 = aVar43;
      }
      uVar18 = rVar28 << 2;
      aVar35.ctx_type = uVar18 >> 0x1f;
      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;
      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);
      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);
      rStack_160.raw_mbs = (uchar *)prVar4;
      rStack_160.raw_len = aVar3.idx;
      rStack_160.len = aVar3.idx;
      rStack_160.raw_stop = aVar3.idx;
      rStack_160.stop = aVar3.idx;
      rStack_160.trans = (uchar *)pbVar38;
      rStack_160.mb_cur_max = bVar25;
      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {
LAB_00052158:
        aVar44 = aVar43;
        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {
          prVar4 = (regex_t *)rStack_160.mbs;
        }
        rStack_160.mbs = (uchar *)prVar4;
        if (rVar42 == 0) {
          if (1 < (int)bVar25) {
            build_wcs_buffer(&rStack_160);
            aVar32.idx = rStack_160.valid_len;
          }
          else if (pbVar38 == (bin_tree_t *)0x0) {
            rStack_160.valid_raw_len = rStack_160.bufs_len;
            aVar32.idx = rStack_160.bufs_len;
          }
          else {
            if (rStack_160.len <= rStack_160.bufs_len) {
              rStack_160.bufs_len = rStack_160.len;
            }
            aVar32.idx = rStack_160.valid_len;
            rStack_160.valid_raw_len = rStack_160.valid_len;
            if (rStack_160.valid_len < rStack_160.bufs_len) {
              do {
                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);
                puVar15 = (undefined1 *)
                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);
                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;
                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +
                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +
                                                    (int)puVar15));
                aVar32.idx = rStack_160.bufs_len;
                rStack_160.valid_raw_len = rStack_160.bufs_len;
              } while (rStack_160.bufs_len != rStack_160.valid_len);
            }
          }
        }
        else {
          if (1 < (int)bVar25) {
            do {
              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);
              if (pbVar12 != (bin_tree_t *)0x0) break;
              aVar32.idx = rStack_160.valid_len;
              if ((aVar3.idx <= rStack_160.valid_raw_len) ||
                 (aVar44.ctx_type = rStack_160.bufs_len << 1,
                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))
              goto LAB_00052338;
              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);
            } while (pbVar12 == (bin_tree_t *)0x0);
            goto LAB_000521d4;
          }
          build_upper_buffer(&rStack_160);
          aVar32.idx = rStack_160.valid_len;
        }
LAB_00052338:
        rStack_160.valid_len = aVar32.idx;
        pbStack_178 = (bin_tree_t *)0x0;
        bVar25 = *aVar8.sbcset;
        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;
        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;
        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);
        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;
        aVar44 = aVar8;
        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;
        aVar32.sbcset =
             (re_bitset_ptr_t)
             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,
                           (reg_errcode_t *)&pbStack_178);
        if (pbStack_178 == (bin_tree_t *)0x0) {
          iVar9 = *(int *)(pcVar6 + 0x239fc);
          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);
          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);
          aVar35.sbcset = (re_bitset_ptr_t)0x0;
          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,
                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);
          pbVar12 = pbVar38;
          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;
        }
        else {
          iVar9 = *(int *)(pcVar6 + 0x239fc);
          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {
            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;
            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;
            goto LAB_000521dc;
          }
          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);
          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),
                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);
        }
        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);
        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);
        pbVar12 = (bin_tree_t *)
                  (*(code *)(iVar9 + 0x63ec))
                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);
        aVar35 = aVar32;
LAB_00052400:
        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;
        aVar32.idx = *aVar8.sbcset;
        if ((pbVar38 == (bin_tree_t *)0x0) ||
           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {
          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;
          pbStack_178 = (bin_tree_t *)0xc;
        }
        else {
          aVar44 = (anon_union_4_5_a39f51ca_for_opr)
                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;
          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;
          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);
          pcVar47 = *(code **)(pcVar6 + 0x23c08);
          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;
          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);
          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35
          ;
          iVar9 = aVar44.idx * 0xc;
          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);
          pcVar47 = *(code **)(pcVar6 + 0x23c08);
          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;
          prVar17 = (re_node_set *)(*pcVar47)(iVar9);
          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;
          if ((((pbVar38 != (bin_tree_t *)0x0) &&
               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&
              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {
            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;
            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);
            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;
            if (pbVar38 != (bin_tree_t *)0x0) {
              pbVar29 = (bin_tree_t *)0x0;
              if (pbVar12 != (bin_tree_t *)0x0) {
                do {
                  pbVar38->parent = pbVar29;
                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);
                  pbVar38 = (bin_tree_t *)&pbVar38->left;
                } while (pbVar29 != pbVar12);
              }
              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,
                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)
                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);
              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;
              if (pbVar38 == (bin_tree_t *)0x0) {
                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;
LAB_00052530:
                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);
                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;
              }
              else {
                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;
                if (pbVar12->parent == (bin_tree_t *)0x0) {
                  pbVar34 = (bin_tree_t *)0x0;
                  pbVar29 = pbVar12;
                  do {
                    pbVar29 = (bin_tree_t *)&pbVar29->left;
                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);
                    if (pbVar34 == pbVar38) goto LAB_00052530;
                  } while (*(bin_tree_t **)pbVar29 == pbVar34);
                }
              }
            }
            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);
            aVar35 = aVar8;
            pbVar12 = (bin_tree_t *)
                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,
                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,
                                aVar8.sbcset);
            if (pbVar12 == (bin_tree_t *)0x0) {
              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);
              aVar35.idx = aVar32.idx;
              pbVar12 = (bin_tree_t *)
                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,
                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,
                                  aVar32.sbcset);
              if (pbVar12 == (bin_tree_t *)0x0) {
                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,
                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)
                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);
                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);
                aVar35.idx = aVar32.idx;
                pbVar12 = (bin_tree_t *)
                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,
                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,
                                   aVar32.sbcset);
                if (pbVar12 == (bin_tree_t *)0x0) {
                  iVar9 = *(int *)(pcVar6 + 0x239fc);
                  aVar43.sbcset = (re_bitset_ptr_t)0x0;
                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;
                  bVar1 = false;
LAB_000525ec:
                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;
LAB_000525f4:
                  iVar10 = aVar43.idx * 0xc;
                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)
                      [aVar43.idx].nelem == 0) goto LAB_00052650;
LAB_00052614:
                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);
                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {
LAB_00052620:
                    if (bVar1) goto LAB_00052628;
                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||
                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset
                          == (re_node_set *)0x0)) ||
                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&
                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))
                    goto LAB_00052998;
                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);
                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;
                    if (prVar17 != (re_node_set *)0x0) {
                      pbVar33 = (bin_tree_storage_t *)0x0;
                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {
                        iVar9 = 0;
                        while( true ) {
                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);
                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);
                          *puVar15 = 0;
                          puVar15[1] = 0;
                          puVar15[2] = 0;
                          puVar15[3] = 0;
                          puVar15[4] = 0;
                          puVar15[5] = 0;
                          puVar15[6] = 0;
                          puVar15[7] = 0;
                          puVar15[8] = 0;
                          puVar15[9] = 0;
                          puVar15[10] = 0;
                          puVar15[0xb] = 0;
                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;
                          iVar9 = iVar9 + 0xc;
                          if (pbVar19 <= pbVar33) break;
                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;
                        }
                        iVar9 = *(int *)(pcVar6 + 0x239fc);
                        aVar35.sbcset = (re_bitset_ptr_t)0x0;
                        if (pbVar19 != (bin_tree_storage_t *)0x0) {
                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;
                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;
                          iStack_190 = 0;
                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)
                                          ((anon_union_4_5_a39f51ca_for_opr *)
                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,
                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {
LAB_00052974:
                            aStack_188.sbcset =
                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);
                            iStack_190 = iStack_190 + 0xc;
                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;
                          }
                          iVar10 = 0;
                          aVar43 = aVar35;
                          while (aVar44 = aStack_188,
                                iVar11 = (*(code *)(iVar9 + 0x3360))
                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +
                                                    *aVar43.sbcset), iVar11 != 0) {
                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;
                            iVar10 = iVar10 + 1;
                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;
                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {
                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;
                              goto LAB_00052974;
                            }
                          }
                          pbVar12 = (bin_tree_t *)0xc;
                          goto LAB_000521d4;
                        }
                      }
LAB_00052998:
                      pbStack_178 = (bin_tree_t *)0x0;
                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&
                          (rVar42 == 0)) &&
                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {
                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;
                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {
                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);
                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);
                          if (pattern != (char *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                            pbVar38 = (bin_tree_t *)
                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +
                                                  0x2b65c))();
                            return pbVar38;
                          }
                          goto switchD_00052dc0_caseD_0;
                        }
                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;
                        *(int *)(aVar39.idx + 0x5c) = 1;
                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =
                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;
                      }
                      prVar17 = (re_node_set *)
                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;
                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx
                      ;
                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;
                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);
                      pbVar12 = (bin_tree_t *)
                                re_node_set_init_copy
                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)
                      ;
                      pbVar38 = pbVar12;
                      apbStack_174[0] = pbVar12;
                      if (pbVar12 == (bin_tree_t *)0x0) {
                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)
                           ) {
                          iVar9 = 0;
                          pbVar38 = pbStack_168;
                          do {
                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)
                                                   ->data +
                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);
                            pbVar34 = (bin_tree_t *)0x0;
                            pbVar29 = pbStack_164;
                            if (*(char *)(piVar24 + 1) == '\x04') {
                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)
                                                             (aVar39.mbcset)->mbchars)->data +
                                                       (int)pbVar29->parent * 8 + -4),
                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {
                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);
                                pbVar29 = (bin_tree_t *)&pbVar29->left;
                                if (pbVar38 == pbVar34) goto LAB_00052a54;
                              }
                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)
                                       ((anon_union_4_5_a39f51ca_for_opr *)
                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)
                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;
                              aVar32 = aVar35;
                              IVar21 = re_node_set_contains
                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,
                                                  (re_node_set *)aVar35.mbcset);
                              if (IVar21 != 0) goto LAB_00052a54;
                              aVar32.sbcset =
                                   (re_bitset_ptr_t)
                                   ((re_node_set *)
                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +
                                   aVar32.idx);
                              pbVar38 = (bin_tree_t *)
                                        re_node_set_merge((re_node_set *)aVar3.mbcset,
                                                          (re_node_set *)aVar32.mbcset);
                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;
                              iVar9 = 1;
                              pbVar38 = pbStack_168;
                            }
                            else {
LAB_00052a54:
                              iVar9 = iVar9 + 1;
                            }
                          } while (iVar9 < (int)pbVar38);
                        }
                        aVar32 = aVar39;
                        aVar35.sbcset = aVar3.sbcset;
                        prVar20 = re_acquire_state_context
                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset
                                             ,(re_node_set *)aVar3.mbcset,0);
                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;
                        pbVar38 = apbStack_174[0];
                        if (prVar20 != (re_dfastate_t *)0x0) {
                          if ((prVar20->field_0x34 & 1) == 0) {
                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;
                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;
                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;
                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);
                            aVar3 = aVar35;
                          }
                          else {
                            prVar20 = re_acquire_state_context
                                                ((reg_errcode_t *)apbStack_174,
                                                 (re_dfa_t *)aVar39.mbcset,
                                                 (re_node_set *)aVar3.mbcset,1);
                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;
                            prVar20 = re_acquire_state_context
                                                ((reg_errcode_t *)apbStack_174,
                                                 (re_dfa_t *)aVar39.mbcset,
                                                 (re_node_set *)aVar3.mbcset,2);
                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;
                            aVar32 = aVar39;
                            prVar20 = re_acquire_state_context
                                                ((reg_errcode_t *)apbStack_174,
                                                 (re_dfa_t *)aVar39.mbcset,
                                                 (re_node_set *)aVar3.mbcset,6);
                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;
                            aVar35 = aVar3;
                            pbVar38 = apbStack_174[0];
                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||
                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||
                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),
                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;
                          }
                          (*pcVar47)(pbStack_164);
                          aVar35 = aVar3;
                          pbVar38 = pbVar12;
                        }
                      }
LAB_00052abc:
                      bVar25 = *aVar8.sbcset;
                      piVar24 = *(int **)(bVar25 + 0x38);
                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);
                      pbStack_178 = pbVar38;
                      if (piVar24 != (int *)0x0) {
                        do {
                          piVar24 = (int *)*piVar24;
                          (**(code **)(pcVar6 + 0x23cd8))();
                        } while (piVar24 != (int *)0x0);
                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);
                      }
                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;
                      *(undefined4 *)(bVar25 + 0x38) = 0;
                      *(undefined4 *)(bVar25 + 0x34) = 0;
                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));
                      *(undefined4 *)(bVar25 + 0x10) = 0;
                      re_string_destruct(&rStack_160);
                      pbVar38 = pbStack_178;
                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;
                      goto LAB_000526ec;
                    }
                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;
                    goto LAB_00052c64;
                  }
                  goto LAB_000525f4;
                }
              }
            }
            goto LAB_000521d4;
          }
LAB_00052c64:
          pbStack_178 = (bin_tree_t *)0xc;
        }
        goto LAB_000521dc;
      }
      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);
      if (pbVar12 == (bin_tree_t *)0x0) {
        aVar32.idx._0_3_ = 0;
        aVar32.idx._3_1_ = rStack_160.mbs_allocated;
        bVar25 = *(int *)(aVar39.idx + 0x5c);
        aVar43 = aVar44;
        goto LAB_00052158;
      }
LAB_000521d4:
      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;
      pbStack_178 = pbVar12;
LAB_000521dc:
      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;
      pcVar47 = *(code **)(pcVar6 + 0x23cd8);
      if (pbVar33 != (bin_tree_storage_t *)0x0) {
        do {
          pbVar33 = pbVar33->next;
          (**(code **)(pcVar6 + 0x23cd8))();
        } while (pbVar33 != (bin_tree_storage_t *)0x0);
        pcVar47 = *(code **)(pcVar6 + 0x23cd8);
      }
      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);
      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;
      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;
      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;
      (*pcVar47)(pbVar38);
      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;
      re_string_destruct(&rStack_160);
      aVar32 = aVar44;
joined_r0x00052b2c:
      if (iVar7 != 0) {
        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));
      }
    }
    else {
      aVar32.sbcset = (re_bitset_ptr_t)0x0;
      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));
      if (iVar9 != 0) goto LAB_000526c8;
      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;
    }
  }
  else {
LAB_000526c8:
    pbStack_178 = (bin_tree_t *)0xc;
  }
  free_dfa_content((re_dfa_t *)aVar39.mbcset);
  *aVar8.sbcset = 0;
  ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0x0;
  pbVar38 = pbStack_178;
LAB_000526ec:
  if (pcStack_10c == (char *)*puVar46) {
    return pbVar38;
  }
  pattern = pcStack_10c;
  (**(code **)(pcVar6 + 0x23c84))();
switchD_00052dc0_caseD_0:
  pcVar6 = *(code **)(pcVar6 + 0x23adc);
  (*pcVar6)();
  syntax_00 = **(reg_syntax_t **)(pcVar6 + 0x22a58);
  *(byte *)&(aVar35.mbcset)->nequiv_classes =
       *(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |
       1;
  rVar22 = re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00);
  if (rVar22 == _REG_NOERROR) {
    return (bin_tree_t *)0x0;
  }
                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  pbVar38 = (bin_tree_t *)
            (**(code **)(pcVar6 + 0x22c8c))
                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +
                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);
  return pbVar38;
LAB_00052628:
  while( true ) {
    aVar43.sbcset = (re_bitset_ptr_t)0x0;
    iVar10 = 0;
    bVar1 = false;
    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0
       ) break;
LAB_00052650:
    aVar44.idx = aVar32.idx;
    aVar35 = aVar43;
    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);
    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;
    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);
    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +
                iVar10) != 0) {
      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;
      goto LAB_000525ec;
    }
    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);
    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;
    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {
      bVar1 = true;
      goto LAB_000525f4;
    }
  }
  goto LAB_00052614;
}



/* WARNING: Type propagation algorithm not settling */

int *******
FUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,
            undefined *param_5,int *param_6)

{
  bool bVar1;
  int *******pppppppiVar2;
  undefined *puVar3;
  int *******pppppppiVar4;
  int *******pppppppiVar5;
  code *pcVar6;
  byte bVar15;
  int iVar7;
  int ******ppppppiVar8;
  byte *pbVar9;
  int iVar10;
  int ******ppppppiVar11;
  undefined1 *puVar12;
  int iVar13;
  int *piVar14;
  uint uVar16;
  int *****pppppiVar17;
  int *******pppppppiVar18;
  int *******pppppppiVar19;
  int *******pppppppiVar20;
  uint uVar21;
  int *******pppppppiVar22;
  int iVar23;
  int *******pppppppiVar24;
  int ******ppppppiVar25;
  undefined *puVar26;
  int *******pppppppiVar27;
  uint uVar28;
  int *******pppppppiVar29;
  undefined *puVar30;
  uint *puVar31;
  code *pcVar32;
  int iStack_190;
  int *******pppppppiStack_188;
  int *******pppppppiStack_178;
  int *******apppppppiStack_174 [2];
  int ******ppppppiStack_16c;
  int iStack_168;
  int *piStack_164;
  int *******pppppppiStack_160;
  int *******apppppppiStack_15c [5];
  int iStack_148;
  int *******pppppppiStack_144;
  int *******pppppppiStack_140;
  int *******pppppppiStack_13c;
  int iStack_138;
  int *******pppppppiStack_134;
  int *******pppppppiStack_130;
  int *******pppppppiStack_12c;
  int *******pppppppiStack_128;
  int ******ppppppiStack_120;
  undefined1 uStack_118;
  byte bStack_117;
  byte bStack_116;
  byte bStack_115;
  int ******ppppppiStack_110;
  uint uStack_10c;
  int *******pppppppiStack_108;
  int iStack_104;
  int ******ppppppiStack_100;
  int *******pppppppiStack_fc;
  int *piStack_f8;
  undefined *puStack_f4;
  int *******pppppppiStack_f0;
  int *******pppppppiStack_ec;
  int *******pppppppiStack_e8;
  code *pcStack_e4;
  undefined *puStack_d0;
  int *piStack_cc;
  undefined *puStack_c8;
  code *pcStack_c0;
  code *pcStack_bc;
  int *****pppppiStack_b8;
  int *******pppppppiStack_b4;
  code *pcStack_b0;
  undefined4 *puStack_ac;
  undefined auStack_a4 [4];
  undefined1 uStack_a0;
  int *******pppppppiStack_9c;
  int *******pppppppiStack_98;
  undefined *puStack_94;
  int *******pppppppiStack_90;
  undefined *puStack_8c;
  int *******pppppppiStack_88;
  undefined4 uStack_84;
  int *******pppppppiStack_80;
  int *******pppppppiStack_7c;
  int *piStack_78;
  code *pcStack_74;
  undefined *local_60;
  int *local_5c;
  undefined auStack_34 [4];
  undefined1 local_30;
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_00075be8;
  local_2c = *(int *)PTR___stack_chk_guard_00075be8;
  puVar26 = PTR_DAT_00075978 + 0x250;
  pppppppiVar29 = (int *******)*param_2;
  local_5c = param_6;
  local_60 = param_5;
  pppppppiVar27 = param_2;
  pppppppiVar20 = param_3;
  pppppppiVar18 = param_4;
  pppppppiVar5 = (int *******)FUN_00050250();
  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {
    pppppppiVar19 = pppppppiVar29 + 0x10;
    pppppppiVar22 = pppppppiVar29 + 0xe;
    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);
LAB_00051b68:
    bVar15 = *(byte *)(param_3 + 1);
    pppppppiVar24 = pppppppiVar5;
    if ((bVar15 & 0xf7) != 2) {
      do {
        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;
        local_5c = param_6;
        local_60 = param_5;
        pppppppiVar27 = param_2;
        pppppppiVar20 = param_3;
        pppppppiVar18 = param_4;
        pppppppiVar29 = (int *******)FUN_00050250(param_1);
        if (*param_6 == 0) {
          pppppppiVar5 = pppppppiVar29;
          pppppppiVar4 = pppppppiVar24;
          pppppppiVar2 = pppppppiVar29;
          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;
        }
        else {
          pppppppiVar4 = pppppppiVar29;
          pppppppiVar2 = pppppppiVar24;
          if (pppppppiVar29 == (int *******)0x0) {
            pppppppiVar20 = (int *******)0x0;
            if (pppppppiVar24 != (int *******)0x0) {
              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);
              FUN_00042ca0(pppppppiVar24);
            }
            pppppppiVar5 = (int *******)0x0;
            break;
          }
        }
        pppppppiVar5 = pppppppiVar4;
        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;
        local_30 = 0x10;
        pppppppiVar27 = pppppppiVar19;
        pppppppiVar20 = pppppppiVar24;
        pppppppiVar18 = pppppppiVar29;
        local_60 = auStack_34;
        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);
        puVar30 = PTR_LAB_00075920;
        if (pppppppiVar5 == (int *******)0x0) {
          param_5 = PTR_LAB_00075920 + 0x2ca0;
          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);
          pppppppiVar20 = (int *******)0x0;
          pppppppiVar27 = (int *******)(puVar30 + 0x4588);
          FUN_00042ca0(pppppppiVar24);
          pppppppiVar5 = (int *******)0x0;
          *param_6 = 0xc;
          param_3 = (int *******)puVar30;
          break;
        }
        bVar15 = *(byte *)(param_3 + 1);
        pppppppiVar24 = pppppppiVar5;
        if ((bVar15 & 0xf7) == 2) break;
      } while( true );
    }
  }
  else {
    pppppppiVar5 = (int *******)0x0;
  }
  if (local_2c == *(int *)puVar3) {
    return pppppppiVar5;
  }
  pcVar6 = FUN_00051cfc;
  iVar10 = local_2c;
  puVar30 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar14 = local_5c;
  puVar3 = local_60;
  puStack_c8 = puVar30 + 0x2b884;
  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);
  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);
  ppppppiVar25 = *pppppppiVar27;
  pppppppiStack_9c = (int *******)*puStack_ac;
  pppppiStack_b8 = ppppppiVar25[0x15];
  piStack_78 = param_6;
  piStack_cc = local_5c;
  puStack_d0 = local_60;
  pppppppiVar19 = pppppppiVar20;
  pppppppiVar22 = pppppppiVar18;
  pppppppiStack_b4 = pppppppiVar27;
  pppppppiStack_98 = pppppppiVar5;
  puStack_94 = param_5;
  pppppppiStack_90 = param_3;
  puStack_8c = puVar26;
  pppppppiStack_88 = param_2;
  uStack_84 = param_1;
  pppppppiStack_80 = param_4;
  pppppppiStack_7c = pppppppiVar29;
  pcStack_74 = pcVar6;
  pppppppiStack_e8 = (int *******)FUN_00051ab4();
  if (*piVar14 == 0) {
    iVar7 = *(int *)(puStack_c8 + -0x7c08);
LAB_00051d9c:
    param_4 = (int *******)(ppppppiVar25 + 0x10);
    pcStack_c0 = (code *)(iVar7 + -0x92c);
    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);
    do {
      pppppppiVar5 = pppppppiStack_e8;
      pppppppiVar19 = (int *******)0x800000;
      pppppppiStack_e8 = pppppppiVar5;
      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;
      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);
      bVar15 = *(byte *)(pppppppiVar20 + 1);
      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;
      if ((bVar15 & 0xf7) == 2) {
        pppppppiVar22 = (int *******)0x0;
      }
      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {
        pppppppiVar29 = (int *******)ppppppiVar25[0x15];
        ppppppiVar25[0x15] = pppppiStack_b8;
        piStack_cc = piVar14;
        puStack_d0 = puVar3;
        pppppppiVar27 = pppppppiStack_b4;
        pppppppiVar22 =
             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);
        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {
          pppppppiVar19 = (int *******)0x0;
          if (pppppppiVar5 != (int *******)0x0) {
            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);
            FUN_00042ca0(pppppppiVar5);
          }
          pppppppiStack_e8 = (int *******)0x0;
          goto LAB_00051eb8;
        }
        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);
        ppppppiVar25[0x15] = (int *****)pppppppiVar29;
      }
      puStack_d0 = auStack_a4;
      uStack_a0 = 10;
      pppppppiVar27 = param_4;
      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);
    } while (pppppppiStack_e8 != (int *******)0x0);
    *piVar14 = 0xc;
    pppppppiVar19 = pppppppiVar5;
  }
  else {
    iVar7 = *(int *)(puStack_c8 + -0x7c08);
    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;
    pppppppiStack_e8 = (int *******)0x0;
  }
LAB_00051eb8:
  if (pppppppiStack_9c == (int *******)*puStack_ac) {
    return pppppppiStack_e8;
  }
  pcVar6 = *(code **)(puStack_c8 + -0x79d8);
  pcVar32 = FUN_00051f24;
  pppppppiVar5 = pppppppiStack_9c;
  (*pcVar6)();
  puStack_f4 = puVar3;
  piStack_f8 = piVar14;
  pppppppiVar5[3] = (int ******)pppppppiVar22;
  pppppppiVar5[2] = (int ******)0x0;
  pppppppiVar5[6] = (int ******)0x0;
  puVar31 = *(uint **)(pcVar6 + 0x23cc4);
  pppppppiVar24 = (int *******)*pppppppiVar5;
  pppppppiStack_178 = (int *******)0x0;
  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;
  uStack_10c = *puVar31;
  pppppppiStack_108 = pppppppiVar20;
  iStack_104 = iVar10;
  ppppppiStack_100 = ppppppiVar25;
  pppppppiStack_fc = pppppppiVar18;
  pppppppiStack_f0 = param_4;
  pppppppiStack_ec = pppppppiVar29;
  pcStack_e4 = pcVar32;
  if (pppppppiVar5[1] < (int ******)0xa0) {
    pppppppiVar18 = (int *******)0xa0;
    pppppppiVar20 = pppppppiVar19;
    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);
    if (pppppppiVar24 == (int *******)0x0) {
      pppppppiVar27 = (int *******)0xc;
      goto LAB_000526ec;
    }
    *pppppppiVar5 = (int ******)pppppppiVar24;
    pppppppiVar5[1] = (int ******)0xa0;
  }
  pcVar32 = *(code **)(pcVar6 + 0x23bb0);
  pppppppiVar20 = (int *******)0xa0;
  pppppppiVar18 = (int *******)0x0;
  pppppppiVar5[2] = (int ******)0xa0;
  (*pcVar32)(pppppppiVar24,0);
  pppppppiVar24[0x10] = (int ******)0x1f;
  if (pppppppiVar19 < (int *******)0xaaaaaaa) {
    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);
    pcVar32 = *(code **)(pcVar6 + 0x23c08);
    pppppppiVar24[1] = (int ******)pppppppiVar29;
    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);
    *pppppppiVar24 = ppppppiVar25;
    if (pppppppiVar19 == (int *******)0x0) {
      ppppppiVar25 = (int ******)0x0;
      pppppppiVar18 = (int *******)0x1;
    }
    else {
      pppppppiVar18 = (int *******)0x1;
      do {
        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);
        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);
      } while (pppppppiVar18 <= pppppppiVar19);
    }
    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);
    pppppppiVar24[0x11] = ppppppiVar25;
    pcVar32 = *(code **)(pcVar6 + 0x23c44);
    pppppppiVar24[8] = ppppppiVar8;
    ppppppiVar25 = (int ******)(*pcVar32)();
    pcVar32 = *(code **)(pcVar6 + 0x23b44);
    pppppppiVar24[0x17] = ppppppiVar25;
    pbVar9 = (byte *)(*pcVar32)(0xe);
    pppppppiVar18 = (int *******)0x55;
    if ((((*pbVar9 & 0xdf) == 0x55) &&
        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&
       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {
      iVar10 = 3;
      if (pbVar9[3] == 0x2d) {
        iVar10 = 4;
      }
      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);
      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);
      if (iVar10 == 0) {
        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;
      }
    }
    bVar15 = *(byte *)(pppppppiVar24 + 0x16);
    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;
    if ((int)pppppppiVar24[0x17] < 2) {
LAB_00052094:
      ppppppiVar25 = *pppppppiVar24;
    }
    else {
      if ((bVar15 & 0x20) != 0) {
        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);
        goto LAB_00052094;
      }
      pppppppiVar18 = (int *******)0x1;
      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);
      pppppppiVar24[0xf] = ppppppiVar25;
      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;
      iVar10 = 0;
      do {
        uVar16 = iVar10 << 3;
        uVar28 = 0;
        do {
          while( true ) {
            uVar21 = uVar28;
            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);
            if (uVar28 == 0xffffffff) break;
            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =
                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);
            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {
LAB_00052780:
              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;
            }
            uVar16 = uVar16 + 1;
            uVar28 = uVar21 + 1;
            if (uVar21 + 1 == 0x20) goto LAB_000527e4;
          }
          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;
          uVar16 = uVar16 + 1;
          uVar28 = uVar21 + 1;
        } while (uVar21 + 1 != 0x20);
LAB_000527e4:
        pppppppiVar20 = (int *******)(uVar21 + 1);
        iVar10 = iVar10 + 4;
      } while (iVar10 != 0x20);
      ppppppiVar25 = *pppppppiVar24;
      pppppppiVar18 = (int *******)0x20;
    }
    if ((ppppppiVar25 == (int ******)0x0) ||
       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))
    goto LAB_000526c8;
    pppppppiStack_178 = (int *******)0x0;
    if (iVar10 == 0) {
LAB_000520dc:
      ppppppiVar8 = pppppppiVar5[5];
      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);
      uVar28 = (uint)pppppppiVar22 & 0x400000;
      uStack_118 = uVar28 != 0;
      ppppppiVar25 = pppppppiVar24[0x17];
      pppppppiVar18 = (int *******)0x1;
      if (ppppppiVar8 == (int ******)0x0) {
        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;
      }
      uVar16 = (int)pppppppiVar24[0x16] << 2;
      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);
      bStack_115 = (byte)pppppppiVar18;
      bStack_117 = (byte)(uVar16 >> 0x1f);
      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);
      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;
      pppppppiStack_160 = pppppppiVar27;
      pppppppiStack_134 = pppppppiVar19;
      pppppppiStack_130 = pppppppiVar19;
      pppppppiStack_12c = pppppppiVar19;
      pppppppiStack_128 = pppppppiVar19;
      ppppppiStack_120 = ppppppiVar8;
      ppppppiStack_110 = ppppppiVar25;
      if (pppppppiVar19 == (int *******)0x0) {
LAB_00052158:
        pppppppiVar29 = pppppppiVar4;
        if (pppppppiVar18 != (int *******)0x0) {
          pppppppiVar27 = apppppppiStack_15c[0];
        }
        apppppppiStack_15c[0] = pppppppiVar27;
        if (uVar28 == 0) {
          if (1 < (int)ppppppiVar25) {
            FUN_000437e4(&pppppppiStack_160);
            pppppppiVar18 = pppppppiStack_144;
          }
          else if (ppppppiVar8 == (int ******)0x0) {
            pppppppiStack_140 = pppppppiStack_13c;
            pppppppiVar18 = pppppppiStack_13c;
          }
          else {
            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {
              pppppppiStack_13c = pppppppiStack_130;
            }
            pppppppiVar18 = pppppppiStack_144;
            pppppppiStack_140 = pppppppiStack_144;
            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {
              do {
                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);
                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;
                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);
                *puVar12 = *(undefined1 *)
                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));
                pppppppiVar18 = pppppppiStack_13c;
                pppppppiStack_140 = pppppppiStack_13c;
              } while (pppppppiStack_13c != pppppppiStack_144);
            }
          }
        }
        else {
          if (1 < (int)ppppppiVar25) {
            do {
              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);
              if (pppppppiVar18 != (int *******)0x0) break;
              pppppppiVar18 = pppppppiStack_144;
              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||
                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),
                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))
              goto LAB_00052338;
              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);
            } while (pppppppiVar18 == (int *******)0x0);
            goto LAB_000521d4;
          }
          FUN_00043700(&pppppppiStack_160);
          pppppppiVar18 = pppppppiStack_144;
        }
LAB_00052338:
        pppppppiStack_144 = pppppppiVar18;
        pppppppiStack_178 = (int *******)0x0;
        ppppppiVar25 = *pppppppiVar5;
        pppppppiVar5[6] = (int ******)0x0;
        ppppppiVar25[0x20] = (int *****)pppppppiVar22;
        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);
        iStack_138 = iStack_138 + iVar7;
        pppppppiVar29 = pppppppiVar5;
        pppppppiVar20 = (int *******)apppppppiStack_174;
        pppppppiVar27 =
             (int *******)
             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,
                          &pppppppiStack_178);
        if (pppppppiStack_178 == (int *******)0x0) {
          iVar7 = *(int *)(pcVar6 + 0x239fc);
          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);
          iStack_168 = CONCAT13(2,iStack_168._1_3_);
          pppppppiVar20 = (int *******)0x0;
          ppppppiVar8 = (int ******)
                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);
          ppppppiVar11 = ppppppiVar8;
          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;
        }
        else {
          iVar7 = *(int *)(pcVar6 + 0x239fc);
          if (pppppppiVar27 == (int *******)0x0) {
            pppppppiVar27 = (int *******)*pppppppiVar5;
            pppppppiVar24[0xd] = (int ******)0x0;
            goto LAB_000521dc;
          }
          iStack_168 = CONCAT13(2,iStack_168._1_3_);
          ppppppiVar8 = (int ******)
                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);
        }
        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);
        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);
        ppppppiVar11 = (int ******)
                       (*(code *)(iVar7 + 0x63ec))
                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,
                                  &ppppppiStack_16c);
        pppppppiVar20 = pppppppiVar27;
LAB_00052400:
        pppppppiVar19 = &ppppppiStack_16c;
        pppppppiVar27 = (int *******)*pppppppiVar5;
        if ((ppppppiVar8 == (int ******)0x0) ||
           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {
          pppppppiVar24[0xd] = (int ******)0x0;
          pppppppiStack_178 = (int *******)0xc;
        }
        else {
          pppppppiVar29 = (int *******)pppppppiVar27[1];
          pppppppiVar24[0xd] = ppppppiVar11;
          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);
          pcVar32 = *(code **)(pcVar6 + 0x23c08);
          pppppppiVar27[3] = ppppppiVar25;
          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);
          pppppppiVar27[4] = (int ******)pppppppiVar20;
          iVar7 = (int)pppppppiVar29 * 0xc;
          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);
          pcVar32 = *(code **)(pcVar6 + 0x23c08);
          pppppppiVar27[5] = ppppppiVar8;
          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);
          pppppppiVar27[6] = ppppppiVar11;
          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&
              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {
            ppppppiVar8 = pppppppiVar5[6];
            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);
            pppppppiVar27[0x21] = ppppppiVar25;
            if (ppppppiVar25 != (int ******)0x0) {
              ppppppiVar11 = (int ******)0x0;
              if (ppppppiVar8 != (int ******)0x0) {
                do {
                  *ppppppiVar25 = (int *****)ppppppiVar11;
                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);
                  ppppppiVar25 = ppppppiVar25 + 1;
                } while (ppppppiVar11 != ppppppiVar8);
              }
              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);
              if (pppppppiVar5[6] == (int ******)0x0) {
                ppppppiVar25 = pppppppiVar27[0x21];
LAB_00052530:
                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);
                pppppppiVar27[0x21] = (int ******)0x0;
              }
              else {
                ppppppiVar25 = pppppppiVar27[0x21];
                if (*ppppppiVar25 == (int *****)0x0) {
                  ppppppiVar11 = (int ******)0x0;
                  ppppppiVar8 = ppppppiVar25;
                  do {
                    ppppppiVar8 = ppppppiVar8 + 1;
                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);
                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;
                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);
                }
              }
            }
            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);
            pppppppiVar20 = pppppppiVar5;
            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);
            if (pppppppiVar18 == (int *******)0x0) {
              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);
              pppppppiVar20 = pppppppiVar27;
              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);
              if (pppppppiVar18 == (int *******)0x0) {
                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);
                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);
                pppppppiVar20 = pppppppiVar27;
                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);
                if (pppppppiVar18 == (int *******)0x0) {
                  iVar7 = *(int *)(pcVar6 + 0x239fc);
                  pppppppiVar22 = (int *******)0x0;
                  pppppppiVar18 = (int *******)pppppppiVar27[2];
                  bVar1 = false;
LAB_000525ec:
                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;
LAB_000525f4:
                  iVar23 = (int)pppppppiVar22 * 0xc;
                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)
                  goto LAB_00052650;
LAB_00052614:
                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);
                  if (pppppppiVar18 == pppppppiVar22) {
LAB_00052620:
                    if (bVar1) goto LAB_00052628;
                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||
                         (pppppppiVar5[6] == (int ******)0x0)) ||
                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&
                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;
                    ppppppiVar25 = (int ******)
                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);
                    pppppppiVar27[7] = ppppppiVar25;
                    if (ppppppiVar25 != (int ******)0x0) {
                      pppppppiVar18 = (int *******)0x0;
                      if (pppppppiVar22 != (int *******)0x0) {
                        iVar7 = 0;
                        while( true ) {
                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);
                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);
                          *puVar12 = 0;
                          puVar12[1] = 0;
                          puVar12[2] = 0;
                          puVar12[3] = 0;
                          puVar12[4] = 0;
                          puVar12[5] = 0;
                          puVar12[6] = 0;
                          puVar12[7] = 0;
                          puVar12[8] = 0;
                          puVar12[9] = 0;
                          puVar12[10] = 0;
                          puVar12[0xb] = 0;
                          pppppppiVar29 = (int *******)pppppppiVar27[2];
                          iVar7 = iVar7 + 0xc;
                          if (pppppppiVar29 <= pppppppiVar18) break;
                          ppppppiVar25 = pppppppiVar27[7];
                        }
                        iVar7 = *(int *)(pcVar6 + 0x239fc);
                        pppppppiVar20 = (int *******)0x0;
                        if (pppppppiVar29 != (int *******)0x0) {
                          ppppppiVar25 = pppppppiVar27[6];
                          pppppppiStack_188 = (int *******)0x0;
                          iStack_190 = 0;
                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)
                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {
LAB_00052974:
                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);
                            iStack_190 = iStack_190 + 0xc;
                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;
                          }
                          iVar23 = 0;
                          pppppppiVar18 = pppppppiVar20;
                          while (pppppppiVar29 = pppppppiStack_188,
                                iVar13 = (*(code *)(iVar7 + 0x3360))
                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,
                                                    pppppppiStack_188), iVar13 != 0) {
                            ppppppiVar25 = pppppppiVar27[6];
                            iVar23 = iVar23 + 1;
                            pppppppiVar18 = pppppppiVar18 + 1;
                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {
                              pppppppiVar29 = (int *******)pppppppiVar27[2];
                              goto LAB_00052974;
                            }
                          }
                          pppppppiVar18 = (int *******)0xc;
                          goto LAB_000521d4;
                        }
                      }
LAB_00052998:
                      pppppppiStack_178 = (int *******)0x0;
                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&
                         (pppppppiVar5[5] == (int ******)0x0)) {
                        pppppppiVar20 = (int *******)pppppppiVar24[2];
                        if (pppppppiVar20 != (int *******)0x0) {
                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);
                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);
                          if (uVar28 != 0) {
                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                            pppppppiVar27 =
                                 (int *******)
                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +
                                                  0xad97)))();
                            return pppppppiVar27;
                          }
                          goto switchD_00052dc0_caseD_0;
                        }
                        pppppppiVar24[0x17] = (int ******)0x1;
                        *(byte *)(pppppppiVar24 + 0x16) =
                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |
                             (0 < (int)pppppppiVar24[0x13]) << 6;
                      }
                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];
                      pppppppiVar24[0x12] = ppppppiVar25;
                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);
                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);
                      pppppppiVar27 = pppppppiVar29;
                      apppppppiStack_174[0] = pppppppiVar29;
                      if (pppppppiVar29 == (int *******)0x0) {
                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {
                          iVar23 = 0;
                          iVar7 = iStack_168;
                          do {
                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;
                            iVar13 = 0;
                            piVar14 = piStack_164;
                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {
                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,
                                     *(char *)(ppppppiVar8 + 1) != '\t' ||
                                     (*ppppppiVar8 != *ppppppiVar25))) {
                                iVar13 = iVar13 + 1;
                                piVar14 = piVar14 + 1;
                                if (iVar7 == iVar13) goto LAB_00052a54;
                              }
                              pppppppiVar20 =
                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];
                              pppppppiVar27 = pppppppiVar20;
                              iVar13 = FUN_00045230(iVar7,&piStack_164);
                              if (iVar13 != 0) goto LAB_00052a54;
                              pppppppiVar18 =
                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);
                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)
                              ;
                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;
                              iVar23 = 1;
                              iVar7 = iStack_168;
                            }
                            else {
LAB_00052a54:
                              iVar23 = iVar23 + 1;
                            }
                          } while (iVar23 < iVar7);
                        }
                        pppppppiVar18 = pppppppiVar24;
                        pppppppiVar20 = pppppppiVar19;
                        ppppppiVar25 = (int ******)
                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0
                                                   );
                        pppppppiVar24[9] = ppppppiVar25;
                        pppppppiVar27 = apppppppiStack_174[0];
                        if (ppppppiVar25 != (int ******)0x0) {
                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {
                            pppppppiVar24[0xc] = ppppppiVar25;
                            pppppppiVar24[0xb] = ppppppiVar25;
                            pppppppiVar24[10] = ppppppiVar25;
                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);
                            pppppppiVar19 = pppppppiVar20;
                          }
                          else {
                            ppppppiVar25 = (int ******)
                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,
                                                        pppppppiVar19,1);
                            pppppppiVar24[10] = ppppppiVar25;
                            ppppppiVar25 = (int ******)
                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,
                                                        pppppppiVar19,2);
                            pppppppiVar24[0xb] = ppppppiVar25;
                            pppppppiVar18 = pppppppiVar24;
                            ppppppiVar25 = (int ******)
                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,
                                                        pppppppiVar19,6);
                            pppppppiVar24[0xc] = ppppppiVar25;
                            pppppppiVar20 = pppppppiVar19;
                            pppppppiVar27 = apppppppiStack_174[0];
                            if (((pppppppiVar24[10] == (int ******)0x0) ||
                                (pppppppiVar24[0xb] == (int ******)0x0)) ||
                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),
                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;
                          }
                          (*pcVar32)(piStack_164);
                          pppppppiVar20 = pppppppiVar19;
                          pppppppiVar27 = pppppppiVar29;
                        }
                      }
LAB_00052abc:
                      ppppppiVar25 = *pppppppiVar5;
                      pppppiVar17 = ppppppiVar25[0xe];
                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);
                      pppppppiStack_178 = pppppppiVar27;
                      if (pppppiVar17 != (int *****)0x0) {
                        do {
                          pppppiVar17 = (int *****)*pppppiVar17;
                          (**(code **)(pcVar6 + 0x23cd8))();
                        } while (pppppiVar17 != (int *****)0x0);
                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);
                      }
                      ppppppiVar25[0x10] = (int *****)0x1f;
                      ppppppiVar25[0xe] = (int *****)0x0;
                      ppppppiVar25[0xd] = (int *****)0x0;
                      (*pcVar32)(ppppppiVar25[4]);
                      ppppppiVar25[4] = (int *****)0x0;
                      FUN_00044d40(&pppppppiStack_160);
                      pppppppiVar27 = pppppppiStack_178;
                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;
                      goto LAB_000526ec;
                    }
                    pppppppiVar27 = (int *******)*pppppppiVar5;
                    goto LAB_00052c64;
                  }
                  goto LAB_000525f4;
                }
              }
            }
            goto LAB_000521d4;
          }
LAB_00052c64:
          pppppppiStack_178 = (int *******)0xc;
        }
        goto LAB_000521dc;
      }
      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);
      if (pppppppiVar18 == (int *******)0x0) {
        pppppppiVar18 = (int *******)(uint)bStack_115;
        ppppppiVar25 = pppppppiVar24[0x17];
        pppppppiVar4 = pppppppiVar29;
        goto LAB_00052158;
      }
LAB_000521d4:
      pppppppiVar27 = (int *******)*pppppppiVar5;
      pppppppiStack_178 = pppppppiVar18;
LAB_000521dc:
      ppppppiVar25 = pppppppiVar27[0xe];
      pcVar32 = *(code **)(pcVar6 + 0x23cd8);
      if (ppppppiVar25 != (int ******)0x0) {
        do {
          ppppppiVar25 = (int ******)*ppppppiVar25;
          (**(code **)(pcVar6 + 0x23cd8))();
        } while (ppppppiVar25 != (int ******)0x0);
        pcVar32 = *(code **)(pcVar6 + 0x23cd8);
      }
      pppppppiVar27[0x10] = (int ******)0x1f;
      pppppppiVar27[0xe] = (int ******)0x0;
      pppppppiVar27[0xd] = (int ******)0x0;
      (*pcVar32)(pppppppiVar27[4]);
      pppppppiVar27[4] = (int ******)0x0;
      FUN_00044d40(&pppppppiStack_160);
      pppppppiVar18 = pppppppiVar29;
joined_r0x00052b2c:
      if (iVar10 != 0) {
        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);
      }
    }
    else {
      pppppppiVar18 = (int *******)0x0;
      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);
      if (iVar7 != 0) goto LAB_000526c8;
      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;
    }
  }
  else {
LAB_000526c8:
    pppppppiStack_178 = (int *******)0xc;
  }
  FUN_000499a0(pppppppiVar24);
  *pppppppiVar5 = (int ******)0x0;
  pppppppiVar5[1] = (int ******)0x0;
  pppppppiVar27 = pppppppiStack_178;
LAB_000526ec:
  if (uStack_10c == *puVar31) {
    return pppppppiVar27;
  }
  uVar28 = uStack_10c;
  (**(code **)(pcVar6 + 0x23c84))();
switchD_00052dc0_caseD_0:
  pcVar6 = *(code **)(pcVar6 + 0x23adc);
  (*pcVar6)();
  *(byte *)(pppppppiVar20 + 7) =
       *(byte *)(pppppppiVar20 + 7) & 0xf6 |
       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;
  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);
  if (iVar10 == 0) {
    return (int *******)0x0;
  }
                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  pppppppiVar27 =
       (int *******)
       (**(code **)(pcVar6 + 0x22c8c))
                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +
                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);
  return pppppppiVar27;
LAB_00052628:
  while( true ) {
    pppppppiVar22 = (int *******)0x0;
    iVar23 = 0;
    bVar1 = false;
    if (pppppppiVar27[6][1] != (int *****)0x0) break;
LAB_00052650:
    pppppppiVar29 = pppppppiVar27;
    pppppppiVar20 = pppppppiVar22;
    pppppppiVar18 =
         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);
    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;
    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);
    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {
      pppppppiVar18 = (int *******)pppppppiVar27[2];
      goto LAB_000525ec;
    }
    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);
    pppppppiVar18 = (int *******)pppppppiVar27[2];
    if (pppppppiVar18 != pppppppiVar22) {
      bVar1 = true;
      goto LAB_000525f4;
    }
  }
  goto LAB_00052614;
}


lui gp,0x3
addiu gp,gp,-0x4534
addu gp,gp,t9
addiu sp,sp,-0x70
lw v0,-0x7998(gp)
sw s3,0x54(sp)
sw s8,0x68(sp)
sw s1,0x4c(sp)
sw v0,0x34(sp)
lw s3,-0x7c08(gp)
lw v0,0x0(v0)
lw s8,0x84(sp)
lw s1,0x80(sp)
addiu s3,s3,0x250
sw gp,0x18(sp)
sw s7,0x64(sp)
or t9,s3,zero
sw s6,0x60(sp)
or s6,a3,zero
sw s5,0x5c(sp)
or s5,a0,zero
sw s4,0x58(sp)
or s4,a1,zero
sw s2,0x50(sp)
or s2,a2,zero
sw s0,0x48(sp)
sw ra,0x6c(sp)
sw v0,0x44(sp)
lw s7,0x0(a1)
sw s8,0x14(sp)
bal 0x00050250
_sw s1,0x10(sp)
lw v1,0x0(s8)
or s0,v0,zero
bne v1,zero,0x00051ce0
_lw gp,0x18(sp)
addiu v0,s7,0x40
sw v0,0x24(sp)
addiu v0,s7,0x38
sw v0,0x28(sp)
addiu v0,sp,0x3c
sw v0,0x2c(sp)
lw v0,-0x7c60(gp)
addiu v0,v0,0x63ec
sw v0,0x30(sp)
lbu v0,0x4(s2)
li v1,0x2
andi a0,v0,0xf7
beq a0,v1,0x00051c14
_lw v1,0x34(sp)
beq s1,zero,0x00051b8c
_li v1,0x9
beq v0,v1,0x00051c14
_lw v1,0x34(sp)
or a0,s5,zero
sw s8,0x14(sp)
or a3,s6,zero
sw s1,0x10(sp)
or a2,s2,zero
or t9,s3,zero
bal 0x00050250
_or a1,s4,zero
lw a0,0x0(s8)
or s7,v0,zero
bne a0,zero,0x00051c54
_lw gp,0x18(sp)
beq s0,zero,0x00051c64
_nop
beq v0,zero,0x00051b68
_lw v0,0x2c(sp)
or a3,s7,zero
lw a1,0x24(sp)
or a2,s0,zero
lw a0,0x28(sp)
lw t9,0x30(sp)
sw v0,0x10(sp)
li v0,0x10
jalr t9
_sb v0,0x40(sp)
beq v0,zero,0x00051c98
_lw gp,0x18(sp)
or s0,v0,zero
lbu v0,0x4(s2)
li v1,0x2
andi a0,v0,0xf7
bne a0,v1,0x00051b7c
_nop
lw v1,0x34(sp)
or v0,s0,zero
lw a0,0x44(sp)
lw v1,0x0(v1)
bne a0,v1,0x00051cf0
_lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
beq v0,zero,0x00051c6c
_nop
bne s0,zero,0x00051bcc
_lw v0,0x2c(sp)
b 0x00051b68
_or s0,s7,zero
beq s0,zero,0x00051c90
_or a2,zero,zero
lw a1,-0x7c60(gp)
lw t9,-0x7c60(gp)
or a0,s0,zero
addiu t9,t9,0x2ca0
bal 0x00042ca0
_addiu a1,a1,0x4588
lw gp,0x18(sp)
b 0x00051c10
_or s0,zero,zero
lw s1,-0x7c60(gp)
or a2,zero,zero
lw s2,-0x7c60(gp)
or a0,s7,zero
addiu s1,s1,0x2ca0
or t9,s1,zero
bal 0x00042ca0
_addiu a1,s2,0x4588
or a2,zero,zero
addiu a1,s2,0x4588
or t9,s1,zero
bal 0x00042ca0
_or a0,s0,zero
li v0,0xc
lw gp,0x18(sp)
or s0,zero,zero
b 0x00051c10
_sw v0,0x0(s8)
bne v0,zero,0x00051b48
_addiu v0,s7,0x40
b 0x00051c10
_or s0,zero,zero
lw t9,-0x79d8(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint *******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)\n\n{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}\n\n" comment (function_definition "int *******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)\n\n{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" primitive_type (pointer_declarator "*******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "*****\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "****\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "***\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "**\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "*\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (function_declarator "FUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" identifier (parameter_list "(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *******param_2" primitive_type (pointer_declarator "*******param_2" * (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 "int *******param_3" primitive_type (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 "int *******param_4" primitive_type (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 "undefined *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) )))))))))) (compound_statement "{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int *******pppppppiVar2;" primitive_type (pointer_declarator "*******pppppppiVar2" * (pointer_declarator "******pppppppiVar2" * (pointer_declarator "*****pppppppiVar2" * (pointer_declarator "****pppppppiVar2" * (pointer_declarator "***pppppppiVar2" * (pointer_declarator "**pppppppiVar2" * (pointer_declarator "*pppppppiVar2" * identifier))))))) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *******pppppppiVar4;" primitive_type (pointer_declarator "*******pppppppiVar4" * (pointer_declarator "******pppppppiVar4" * (pointer_declarator "*****pppppppiVar4" * (pointer_declarator "****pppppppiVar4" * (pointer_declarator "***pppppppiVar4" * (pointer_declarator "**pppppppiVar4" * (pointer_declarator "*pppppppiVar4" * identifier))))))) ;) (declaration "int *******pppppppiVar5;" primitive_type (pointer_declarator "*******pppppppiVar5" * (pointer_declarator "******pppppppiVar5" * (pointer_declarator "*****pppppppiVar5" * (pointer_declarator "****pppppppiVar5" * (pointer_declarator "***pppppppiVar5" * (pointer_declarator "**pppppppiVar5" * (pointer_declarator "*pppppppiVar5" * identifier))))))) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int ******ppppppiVar8;" primitive_type (pointer_declarator "******ppppppiVar8" * (pointer_declarator "*****ppppppiVar8" * (pointer_declarator "****ppppppiVar8" * (pointer_declarator "***ppppppiVar8" * (pointer_declarator "**ppppppiVar8" * (pointer_declarator "*ppppppiVar8" * identifier)))))) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int ******ppppppiVar11;" primitive_type (pointer_declarator "******ppppppiVar11" * (pointer_declarator "*****ppppppiVar11" * (pointer_declarator "****ppppppiVar11" * (pointer_declarator "***ppppppiVar11" * (pointer_declarator "**ppppppiVar11" * (pointer_declarator "*ppppppiVar11" * identifier)))))) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *****pppppiVar17;" primitive_type (pointer_declarator "*****pppppiVar17" * (pointer_declarator "****pppppiVar17" * (pointer_declarator "***pppppiVar17" * (pointer_declarator "**pppppiVar17" * (pointer_declarator "*pppppiVar17" * identifier))))) ;) (declaration "int *******pppppppiVar18;" primitive_type (pointer_declarator "*******pppppppiVar18" * (pointer_declarator "******pppppppiVar18" * (pointer_declarator "*****pppppppiVar18" * (pointer_declarator "****pppppppiVar18" * (pointer_declarator "***pppppppiVar18" * (pointer_declarator "**pppppppiVar18" * (pointer_declarator "*pppppppiVar18" * identifier))))))) ;) (declaration "int *******pppppppiVar19;" primitive_type (pointer_declarator "*******pppppppiVar19" * (pointer_declarator "******pppppppiVar19" * (pointer_declarator "*****pppppppiVar19" * (pointer_declarator "****pppppppiVar19" * (pointer_declarator "***pppppppiVar19" * (pointer_declarator "**pppppppiVar19" * (pointer_declarator "*pppppppiVar19" * identifier))))))) ;) (declaration "int *******pppppppiVar20;" primitive_type (pointer_declarator "*******pppppppiVar20" * (pointer_declarator "******pppppppiVar20" * (pointer_declarator "*****pppppppiVar20" * (pointer_declarator "****pppppppiVar20" * (pointer_declarator "***pppppppiVar20" * (pointer_declarator "**pppppppiVar20" * (pointer_declarator "*pppppppiVar20" * identifier))))))) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int *******pppppppiVar22;" primitive_type (pointer_declarator "*******pppppppiVar22" * (pointer_declarator "******pppppppiVar22" * (pointer_declarator "*****pppppppiVar22" * (pointer_declarator "****pppppppiVar22" * (pointer_declarator "***pppppppiVar22" * (pointer_declarator "**pppppppiVar22" * (pointer_declarator "*pppppppiVar22" * identifier))))))) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *******pppppppiVar24;" primitive_type (pointer_declarator "*******pppppppiVar24" * (pointer_declarator "******pppppppiVar24" * (pointer_declarator "*****pppppppiVar24" * (pointer_declarator "****pppppppiVar24" * (pointer_declarator "***pppppppiVar24" * (pointer_declarator "**pppppppiVar24" * (pointer_declarator "*pppppppiVar24" * identifier))))))) ;) (declaration "int ******ppppppiVar25;" primitive_type (pointer_declarator "******ppppppiVar25" * (pointer_declarator "*****ppppppiVar25" * (pointer_declarator "****ppppppiVar25" * (pointer_declarator "***ppppppiVar25" * (pointer_declarator "**ppppppiVar25" * (pointer_declarator "*ppppppiVar25" * identifier)))))) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *******pppppppiVar27;" primitive_type (pointer_declarator "*******pppppppiVar27" * (pointer_declarator "******pppppppiVar27" * (pointer_declarator "*****pppppppiVar27" * (pointer_declarator "****pppppppiVar27" * (pointer_declarator "***pppppppiVar27" * (pointer_declarator "**pppppppiVar27" * (pointer_declarator "*pppppppiVar27" * identifier))))))) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *******pppppppiVar29;" primitive_type (pointer_declarator "*******pppppppiVar29" * (pointer_declarator "******pppppppiVar29" * (pointer_declarator "*****pppppppiVar29" * (pointer_declarator "****pppppppiVar29" * (pointer_declarator "***pppppppiVar29" * (pointer_declarator "**pppppppiVar29" * (pointer_declarator "*pppppppiVar29" * identifier))))))) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "int iStack_190;" primitive_type identifier ;) (declaration "int *******pppppppiStack_188;" primitive_type (pointer_declarator "*******pppppppiStack_188" * (pointer_declarator "******pppppppiStack_188" * (pointer_declarator "*****pppppppiStack_188" * (pointer_declarator "****pppppppiStack_188" * (pointer_declarator "***pppppppiStack_188" * (pointer_declarator "**pppppppiStack_188" * (pointer_declarator "*pppppppiStack_188" * identifier))))))) ;) (declaration "int *******pppppppiStack_178;" primitive_type (pointer_declarator "*******pppppppiStack_178" * (pointer_declarator "******pppppppiStack_178" * (pointer_declarator "*****pppppppiStack_178" * (pointer_declarator "****pppppppiStack_178" * (pointer_declarator "***pppppppiStack_178" * (pointer_declarator "**pppppppiStack_178" * (pointer_declarator "*pppppppiStack_178" * identifier))))))) ;) (declaration "int *******apppppppiStack_174 [2];" primitive_type (pointer_declarator "*******apppppppiStack_174 [2]" * (pointer_declarator "******apppppppiStack_174 [2]" * (pointer_declarator "*****apppppppiStack_174 [2]" * (pointer_declarator "****apppppppiStack_174 [2]" * (pointer_declarator "***apppppppiStack_174 [2]" * (pointer_declarator "**apppppppiStack_174 [2]" * (pointer_declarator "*apppppppiStack_174 [2]" * (array_declarator "apppppppiStack_174 [2]" identifier [ number_literal ])))))))) ;) (declaration "int ******ppppppiStack_16c;" primitive_type (pointer_declarator "******ppppppiStack_16c" * (pointer_declarator "*****ppppppiStack_16c" * (pointer_declarator "****ppppppiStack_16c" * (pointer_declarator "***ppppppiStack_16c" * (pointer_declarator "**ppppppiStack_16c" * (pointer_declarator "*ppppppiStack_16c" * identifier)))))) ;) (declaration "int iStack_168;" primitive_type identifier ;) (declaration "int *piStack_164;" primitive_type (pointer_declarator "*piStack_164" * identifier) ;) (declaration "int *******pppppppiStack_160;" primitive_type (pointer_declarator "*******pppppppiStack_160" * (pointer_declarator "******pppppppiStack_160" * (pointer_declarator "*****pppppppiStack_160" * (pointer_declarator "****pppppppiStack_160" * (pointer_declarator "***pppppppiStack_160" * (pointer_declarator "**pppppppiStack_160" * (pointer_declarator "*pppppppiStack_160" * identifier))))))) ;) (declaration "int *******apppppppiStack_15c [5];" primitive_type (pointer_declarator "*******apppppppiStack_15c [5]" * (pointer_declarator "******apppppppiStack_15c [5]" * (pointer_declarator "*****apppppppiStack_15c [5]" * (pointer_declarator "****apppppppiStack_15c [5]" * (pointer_declarator "***apppppppiStack_15c [5]" * (pointer_declarator "**apppppppiStack_15c [5]" * (pointer_declarator "*apppppppiStack_15c [5]" * (array_declarator "apppppppiStack_15c [5]" identifier [ number_literal ])))))))) ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "int *******pppppppiStack_144;" primitive_type (pointer_declarator "*******pppppppiStack_144" * (pointer_declarator "******pppppppiStack_144" * (pointer_declarator "*****pppppppiStack_144" * (pointer_declarator "****pppppppiStack_144" * (pointer_declarator "***pppppppiStack_144" * (pointer_declarator "**pppppppiStack_144" * (pointer_declarator "*pppppppiStack_144" * identifier))))))) ;) (declaration "int *******pppppppiStack_140;" primitive_type (pointer_declarator "*******pppppppiStack_140" * (pointer_declarator "******pppppppiStack_140" * (pointer_declarator "*****pppppppiStack_140" * (pointer_declarator "****pppppppiStack_140" * (pointer_declarator "***pppppppiStack_140" * (pointer_declarator "**pppppppiStack_140" * (pointer_declarator "*pppppppiStack_140" * identifier))))))) ;) (declaration "int *******pppppppiStack_13c;" primitive_type (pointer_declarator "*******pppppppiStack_13c" * (pointer_declarator "******pppppppiStack_13c" * (pointer_declarator "*****pppppppiStack_13c" * (pointer_declarator "****pppppppiStack_13c" * (pointer_declarator "***pppppppiStack_13c" * (pointer_declarator "**pppppppiStack_13c" * (pointer_declarator "*pppppppiStack_13c" * identifier))))))) ;) (declaration "int iStack_138;" primitive_type identifier ;) (declaration "int *******pppppppiStack_134;" primitive_type (pointer_declarator "*******pppppppiStack_134" * (pointer_declarator "******pppppppiStack_134" * (pointer_declarator "*****pppppppiStack_134" * (pointer_declarator "****pppppppiStack_134" * (pointer_declarator "***pppppppiStack_134" * (pointer_declarator "**pppppppiStack_134" * (pointer_declarator "*pppppppiStack_134" * identifier))))))) ;) (declaration "int *******pppppppiStack_130;" primitive_type (pointer_declarator "*******pppppppiStack_130" * (pointer_declarator "******pppppppiStack_130" * (pointer_declarator "*****pppppppiStack_130" * (pointer_declarator "****pppppppiStack_130" * (pointer_declarator "***pppppppiStack_130" * (pointer_declarator "**pppppppiStack_130" * (pointer_declarator "*pppppppiStack_130" * identifier))))))) ;) (declaration "int *******pppppppiStack_12c;" primitive_type (pointer_declarator "*******pppppppiStack_12c" * (pointer_declarator "******pppppppiStack_12c" * (pointer_declarator "*****pppppppiStack_12c" * (pointer_declarator "****pppppppiStack_12c" * (pointer_declarator "***pppppppiStack_12c" * (pointer_declarator "**pppppppiStack_12c" * (pointer_declarator "*pppppppiStack_12c" * identifier))))))) ;) (declaration "int *******pppppppiStack_128;" primitive_type (pointer_declarator "*******pppppppiStack_128" * (pointer_declarator "******pppppppiStack_128" * (pointer_declarator "*****pppppppiStack_128" * (pointer_declarator "****pppppppiStack_128" * (pointer_declarator "***pppppppiStack_128" * (pointer_declarator "**pppppppiStack_128" * (pointer_declarator "*pppppppiStack_128" * identifier))))))) ;) (declaration "int ******ppppppiStack_120;" primitive_type (pointer_declarator "******ppppppiStack_120" * (pointer_declarator "*****ppppppiStack_120" * (pointer_declarator "****ppppppiStack_120" * (pointer_declarator "***ppppppiStack_120" * (pointer_declarator "**ppppppiStack_120" * (pointer_declarator "*ppppppiStack_120" * identifier)))))) ;) (declaration "undefined1 uStack_118;" type_identifier identifier ;) (declaration "byte bStack_117;" type_identifier identifier ;) (declaration "byte bStack_116;" type_identifier identifier ;) (declaration "byte bStack_115;" type_identifier identifier ;) (declaration "int ******ppppppiStack_110;" primitive_type (pointer_declarator "******ppppppiStack_110" * (pointer_declarator "*****ppppppiStack_110" * (pointer_declarator "****ppppppiStack_110" * (pointer_declarator "***ppppppiStack_110" * (pointer_declarator "**ppppppiStack_110" * (pointer_declarator "*ppppppiStack_110" * identifier)))))) ;) (declaration "uint uStack_10c;" type_identifier identifier ;) (declaration "int *******pppppppiStack_108;" primitive_type (pointer_declarator "*******pppppppiStack_108" * (pointer_declarator "******pppppppiStack_108" * (pointer_declarator "*****pppppppiStack_108" * (pointer_declarator "****pppppppiStack_108" * (pointer_declarator "***pppppppiStack_108" * (pointer_declarator "**pppppppiStack_108" * (pointer_declarator "*pppppppiStack_108" * identifier))))))) ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "int ******ppppppiStack_100;" primitive_type (pointer_declarator "******ppppppiStack_100" * (pointer_declarator "*****ppppppiStack_100" * (pointer_declarator "****ppppppiStack_100" * (pointer_declarator "***ppppppiStack_100" * (pointer_declarator "**ppppppiStack_100" * (pointer_declarator "*ppppppiStack_100" * identifier)))))) ;) (declaration "int *******pppppppiStack_fc;" primitive_type (pointer_declarator "*******pppppppiStack_fc" * (pointer_declarator "******pppppppiStack_fc" * (pointer_declarator "*****pppppppiStack_fc" * (pointer_declarator "****pppppppiStack_fc" * (pointer_declarator "***pppppppiStack_fc" * (pointer_declarator "**pppppppiStack_fc" * (pointer_declarator "*pppppppiStack_fc" * identifier))))))) ;) (declaration "int *piStack_f8;" primitive_type (pointer_declarator "*piStack_f8" * identifier) ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "int *******pppppppiStack_f0;" primitive_type (pointer_declarator "*******pppppppiStack_f0" * (pointer_declarator "******pppppppiStack_f0" * (pointer_declarator "*****pppppppiStack_f0" * (pointer_declarator "****pppppppiStack_f0" * (pointer_declarator "***pppppppiStack_f0" * (pointer_declarator "**pppppppiStack_f0" * (pointer_declarator "*pppppppiStack_f0" * identifier))))))) ;) (declaration "int *******pppppppiStack_ec;" primitive_type (pointer_declarator "*******pppppppiStack_ec" * (pointer_declarator "******pppppppiStack_ec" * (pointer_declarator "*****pppppppiStack_ec" * (pointer_declarator "****pppppppiStack_ec" * (pointer_declarator "***pppppppiStack_ec" * (pointer_declarator "**pppppppiStack_ec" * (pointer_declarator "*pppppppiStack_ec" * identifier))))))) ;) (declaration "int *******pppppppiStack_e8;" primitive_type (pointer_declarator "*******pppppppiStack_e8" * (pointer_declarator "******pppppppiStack_e8" * (pointer_declarator "*****pppppppiStack_e8" * (pointer_declarator "****pppppppiStack_e8" * (pointer_declarator "***pppppppiStack_e8" * (pointer_declarator "**pppppppiStack_e8" * (pointer_declarator "*pppppppiStack_e8" * identifier))))))) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "undefined *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "code *pcStack_c0;" type_identifier (pointer_declarator "*pcStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "int *****pppppiStack_b8;" primitive_type (pointer_declarator "*****pppppiStack_b8" * (pointer_declarator "****pppppiStack_b8" * (pointer_declarator "***pppppiStack_b8" * (pointer_declarator "**pppppiStack_b8" * (pointer_declarator "*pppppiStack_b8" * identifier))))) ;) (declaration "int *******pppppppiStack_b4;" primitive_type (pointer_declarator "*******pppppppiStack_b4" * (pointer_declarator "******pppppppiStack_b4" * (pointer_declarator "*****pppppppiStack_b4" * (pointer_declarator "****pppppppiStack_b4" * (pointer_declarator "***pppppppiStack_b4" * (pointer_declarator "**pppppppiStack_b4" * (pointer_declarator "*pppppppiStack_b4" * identifier))))))) ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "undefined4 *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "undefined auStack_a4 [4];" type_identifier (array_declarator "auStack_a4 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_a0;" type_identifier identifier ;) (declaration "int *******pppppppiStack_9c;" primitive_type (pointer_declarator "*******pppppppiStack_9c" * (pointer_declarator "******pppppppiStack_9c" * (pointer_declarator "*****pppppppiStack_9c" * (pointer_declarator "****pppppppiStack_9c" * (pointer_declarator "***pppppppiStack_9c" * (pointer_declarator "**pppppppiStack_9c" * (pointer_declarator "*pppppppiStack_9c" * identifier))))))) ;) (declaration "int *******pppppppiStack_98;" primitive_type (pointer_declarator "*******pppppppiStack_98" * (pointer_declarator "******pppppppiStack_98" * (pointer_declarator "*****pppppppiStack_98" * (pointer_declarator "****pppppppiStack_98" * (pointer_declarator "***pppppppiStack_98" * (pointer_declarator "**pppppppiStack_98" * (pointer_declarator "*pppppppiStack_98" * identifier))))))) ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "int *******pppppppiStack_90;" primitive_type (pointer_declarator "*******pppppppiStack_90" * (pointer_declarator "******pppppppiStack_90" * (pointer_declarator "*****pppppppiStack_90" * (pointer_declarator "****pppppppiStack_90" * (pointer_declarator "***pppppppiStack_90" * (pointer_declarator "**pppppppiStack_90" * (pointer_declarator "*pppppppiStack_90" * identifier))))))) ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "int *******pppppppiStack_88;" primitive_type (pointer_declarator "*******pppppppiStack_88" * (pointer_declarator "******pppppppiStack_88" * (pointer_declarator "*****pppppppiStack_88" * (pointer_declarator "****pppppppiStack_88" * (pointer_declarator "***pppppppiStack_88" * (pointer_declarator "**pppppppiStack_88" * (pointer_declarator "*pppppppiStack_88" * identifier))))))) ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "int *******pppppppiStack_80;" primitive_type (pointer_declarator "*******pppppppiStack_80" * (pointer_declarator "******pppppppiStack_80" * (pointer_declarator "*****pppppppiStack_80" * (pointer_declarator "****pppppppiStack_80" * (pointer_declarator "***pppppppiStack_80" * (pointer_declarator "**pppppppiStack_80" * (pointer_declarator "*pppppppiStack_80" * identifier))))))) ;) (declaration "int *******pppppppiStack_7c;" primitive_type (pointer_declarator "*******pppppppiStack_7c" * (pointer_declarator "******pppppppiStack_7c" * (pointer_declarator "*****pppppppiStack_7c" * (pointer_declarator "****pppppppiStack_7c" * (pointer_declarator "***pppppppiStack_7c" * (pointer_declarator "**pppppppiStack_7c" * (pointer_declarator "*pppppppiStack_7c" * identifier))))))) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined auStack_34 [4];" type_identifier (array_declarator "auStack_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00075be8" * (cast_expression "(int *)PTR___stack_chk_guard_00075be8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar26 = PTR_DAT_00075978 + 0x250;" (assignment_expression "puVar26 = PTR_DAT_00075978 + 0x250" identifier = (binary_expression "PTR_DAT_00075978 + 0x250" identifier + number_literal)) ;) (expression_statement "pppppppiVar29 = (int *******)*param_2;" (assignment_expression "pppppppiVar29 = (int *******)*param_2" identifier = (cast_expression "(int *******)*param_2" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "local_5c = param_6;" (assignment_expression "local_5c = param_6" identifier = identifier) ;) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" identifier = identifier) ;) (expression_statement "pppppppiVar27 = param_2;" (assignment_expression "pppppppiVar27 = param_2" identifier = identifier) ;) (expression_statement "pppppppiVar20 = param_3;" (assignment_expression "pppppppiVar20 = param_3" identifier = identifier) ;) (expression_statement "pppppppiVar18 = param_4;" (assignment_expression "pppppppiVar18 = param_4" identifier = identifier) ;) (expression_statement "pppppppiVar5 = (int *******)FUN_00050250();" (assignment_expression "pppppppiVar5 = (int *******)FUN_00050250()" identifier = (cast_expression "(int *******)FUN_00050250()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00050250()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }" if (parenthesized_expression "((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0))" ( (binary_expression "(*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)" (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) || (parenthesized_expression "(pppppppiVar5 != (int *******)0x0)" ( (binary_expression "pppppppiVar5 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) (compound_statement "{\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }" { (expression_statement "pppppppiVar19 = pppppppiVar29 + 0x10;" (assignment_expression "pppppppiVar19 = pppppppiVar29 + 0x10" identifier = (binary_expression "pppppppiVar29 + 0x10" identifier + number_literal)) ;) (expression_statement "pppppppiVar22 = pppppppiVar29 + 0xe;" (assignment_expression "pppppppiVar22 = pppppppiVar29 + 0xe" identifier = (binary_expression "pppppppiVar29 + 0xe" identifier + number_literal)) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x63ec)" ( (binary_expression "PTR_LAB_00075920 + 0x63ec" identifier + number_literal) )))) ;) (labeled_statement "LAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);" statement_identifier : (expression_statement "bVar15 = *(byte *)(param_3 + 1);" (assignment_expression "bVar15 = *(byte *)(param_3 + 1)" identifier = (pointer_expression "*(byte *)(param_3 + 1)" * (cast_expression "(byte *)(param_3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) ))))) ;)) (expression_statement "pppppppiVar24 = pppppppiVar5;" (assignment_expression "pppppppiVar24 = pppppppiVar5" identifier = identifier) ;) (if_statement "if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }" if (parenthesized_expression "((bVar15 & 0xf7) != 2)" ( (binary_expression "(bVar15 & 0xf7) != 2" (parenthesized_expression "(bVar15 & 0xf7)" ( (binary_expression "bVar15 & 0xf7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }" { (do_statement "do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );" do (compound_statement "{\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      }" { (if_statement "if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;" if (parenthesized_expression "((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9))" ( (binary_expression "(param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)" (parenthesized_expression "(param_5 != (undefined *)0x0)" ( (binary_expression "param_5 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar5 = pppppppiVar24, bVar15 == 9)" ( (comma_expression "pppppppiVar5 = pppppppiVar24, bVar15 == 9" (assignment_expression "pppppppiVar5 = pppppppiVar24" identifier = identifier) , (binary_expression "bVar15 == 9" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_5c = param_6;" (assignment_expression "local_5c = param_6" identifier = identifier) ;) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" identifier = identifier) ;) (expression_statement "pppppppiVar27 = param_2;" (assignment_expression "pppppppiVar27 = param_2" identifier = identifier) ;) (expression_statement "pppppppiVar20 = param_3;" (assignment_expression "pppppppiVar20 = param_3" identifier = identifier) ;) (expression_statement "pppppppiVar18 = param_4;" (assignment_expression "pppppppiVar18 = param_4" identifier = identifier) ;) (expression_statement "pppppppiVar29 = (int *******)FUN_00050250(param_1);" (assignment_expression "pppppppiVar29 = (int *******)FUN_00050250(param_1)" identifier = (cast_expression "(int *******)FUN_00050250(param_1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00050250(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (compound_statement "{\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }" { (expression_statement "pppppppiVar5 = pppppppiVar29;" (assignment_expression "pppppppiVar5 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar4 = pppppppiVar24;" (assignment_expression "pppppppiVar4 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar2 = pppppppiVar29;" (assignment_expression "pppppppiVar2 = pppppppiVar29" identifier = identifier) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00051b68;" goto statement_identifier ;)) }) (else_clause "else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" else (compound_statement "{\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" { (expression_statement "pppppppiVar4 = pppppppiVar29;" (assignment_expression "pppppppiVar4 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar2 = pppppppiVar24;" (assignment_expression "pppppppiVar2 = pppppppiVar24" identifier = identifier) ;) (if_statement "if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }" if (parenthesized_expression "(pppppppiVar29 == (int *******)0x0)" ( (binary_expression "pppppppiVar29 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }" { (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }" if (parenthesized_expression "(pppppppiVar24 != (int *******)0x0)" ( (binary_expression "pppppppiVar24 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }" { (expression_statement "pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588)" identifier = (cast_expression "(int *******)(PTR_LAB_00075920 + 0x4588)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x4588)" ( (binary_expression "PTR_LAB_00075920 + 0x4588" identifier + number_literal) )))) ;) (expression_statement "FUN_00042ca0(pppppppiVar24);" (call_expression "FUN_00042ca0(pppppppiVar24)" identifier (argument_list "(pppppppiVar24)" ( identifier ))) ;) })) (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (break_statement "break;" break ;) })) }))) (expression_statement "pppppppiVar5 = pppppppiVar4;" (assignment_expression "pppppppiVar5 = pppppppiVar4" identifier = identifier) ;) (if_statement "if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;" if (parenthesized_expression "(pppppppiVar2 == (int *******)0x0)" ( (binary_expression "pppppppiVar2 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00051b68;" goto statement_identifier ;)) (expression_statement "local_30 = 0x10;" (assignment_expression "local_30 = 0x10" identifier = number_literal) ;) (expression_statement "pppppppiVar27 = pppppppiVar19;" (assignment_expression "pppppppiVar27 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar20 = pppppppiVar24;" (assignment_expression "pppppppiVar20 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar18 = pppppppiVar29;" (assignment_expression "pppppppiVar18 = pppppppiVar29" identifier = identifier) ;) (expression_statement "local_60 = auStack_34;" (assignment_expression "local_60 = auStack_34" identifier = identifier) ;) (expression_statement "pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);" (assignment_expression "pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22)" identifier = (cast_expression "(int *******)(*pcVar6)(pppppppiVar22)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar6)(pppppppiVar22)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(pppppppiVar22)" ( identifier ))))) ;) (expression_statement "puVar30 = PTR_LAB_00075920;" (assignment_expression "puVar30 = PTR_LAB_00075920" identifier = identifier) ;) (if_statement "if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }" if (parenthesized_expression "(pppppppiVar5 == (int *******)0x0)" ( (binary_expression "pppppppiVar5 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }" { (expression_statement "param_5 = PTR_LAB_00075920 + 0x2ca0;" (assignment_expression "param_5 = PTR_LAB_00075920 + 0x2ca0" identifier = (binary_expression "PTR_LAB_00075920 + 0x2ca0" identifier + number_literal)) ;) (expression_statement "FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);" (call_expression "FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0)" identifier (argument_list "(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0)" ( identifier , (binary_expression "PTR_LAB_00075920 + 0x4588" identifier + number_literal) , number_literal ))) ;) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27 = (int *******)(puVar30 + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(puVar30 + 0x4588)" identifier = (cast_expression "(int *******)(puVar30 + 0x4588)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(puVar30 + 0x4588)" ( (binary_expression "puVar30 + 0x4588" identifier + number_literal) )))) ;) (expression_statement "FUN_00042ca0(pppppppiVar24);" (call_expression "FUN_00042ca0(pppppppiVar24)" identifier (argument_list "(pppppppiVar24)" ( identifier ))) ;) (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "param_3 = (int *******)puVar30;" (assignment_expression "param_3 = (int *******)puVar30" identifier = (cast_expression "(int *******)puVar30" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "bVar15 = *(byte *)(param_3 + 1);" (assignment_expression "bVar15 = *(byte *)(param_3 + 1)" identifier = (pointer_expression "*(byte *)(param_3 + 1)" * (cast_expression "(byte *)(param_3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24 = pppppppiVar5;" (assignment_expression "pppppppiVar24 = pppppppiVar5" identifier = identifier) ;) (if_statement "if ((bVar15 & 0xf7) == 2) break;" if (parenthesized_expression "((bVar15 & 0xf7) == 2)" ( (binary_expression "(bVar15 & 0xf7) == 2" (parenthesized_expression "(bVar15 & 0xf7)" ( (binary_expression "bVar15 & 0xf7" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    pppppppiVar5 = (int *******)0x0;\n  }" else (compound_statement "{\n    pppppppiVar5 = (int *******)0x0;\n  }" { (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (if_statement "if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pppppppiVar5;\n  }" { (return_statement "return pppppppiVar5;" return identifier ;) })) (expression_statement "pcVar6 = FUN_00051cfc;" (assignment_expression "pcVar6 = FUN_00051cfc" identifier = identifier) ;) (expression_statement "iVar10 = local_2c;" (assignment_expression "iVar10 = local_2c" identifier = identifier) ;) (expression_statement "puVar30 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar30 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar14 = local_5c;" (assignment_expression "piVar14 = local_5c" identifier = identifier) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (expression_statement "puStack_c8 = puVar30 + 0x2b884;" (assignment_expression "puStack_c8 = puVar30 + 0x2b884" identifier = (binary_expression "puVar30 + 0x2b884" identifier + number_literal)) ;) (expression_statement "puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);" (assignment_expression "puStack_ac = *(undefined4 **)(puVar30 + 0x23eec)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + 0x23eec)" * (cast_expression "(undefined4 **)(puVar30 + 0x23eec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x23eec)" ( (binary_expression "puVar30 + 0x23eec" identifier + number_literal) ))))) ;) (expression_statement "pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);" (assignment_expression "pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" identifier = (cast_expression "(code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" ( (binary_expression "*(int *)(puVar30 + 0x23c7c) + 0x1ab4" (pointer_expression "*(int *)(puVar30 + 0x23c7c)" * (cast_expression "(int *)(puVar30 + 0x23c7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x23c7c)" ( (binary_expression "puVar30 + 0x23c7c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppppppiVar25 = *pppppppiVar27;" (assignment_expression "ppppppiVar25 = *pppppppiVar27" identifier = (pointer_expression "*pppppppiVar27" * identifier)) ;) (expression_statement "pppppppiStack_9c = (int *******)*puStack_ac;" (assignment_expression "pppppppiStack_9c = (int *******)*puStack_ac" identifier = (cast_expression "(int *******)*puStack_ac" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_ac" * identifier))) ;) (expression_statement "pppppiStack_b8 = ppppppiVar25[0x15];" (assignment_expression "pppppiStack_b8 = ppppppiVar25[0x15]" identifier = (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ])) ;) (expression_statement "piStack_78 = param_6;" (assignment_expression "piStack_78 = param_6" identifier = identifier) ;) (expression_statement "piStack_cc = local_5c;" (assignment_expression "piStack_cc = local_5c" identifier = identifier) ;) (expression_statement "puStack_d0 = local_60;" (assignment_expression "puStack_d0 = local_60" identifier = identifier) ;) (expression_statement "pppppppiVar19 = pppppppiVar20;" (assignment_expression "pppppppiVar19 = pppppppiVar20" identifier = identifier) ;) (expression_statement "pppppppiVar22 = pppppppiVar18;" (assignment_expression "pppppppiVar22 = pppppppiVar18" identifier = identifier) ;) (expression_statement "pppppppiStack_b4 = pppppppiVar27;" (assignment_expression "pppppppiStack_b4 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiStack_98 = pppppppiVar5;" (assignment_expression "pppppppiStack_98 = pppppppiVar5" identifier = identifier) ;) (expression_statement "puStack_94 = param_5;" (assignment_expression "puStack_94 = param_5" identifier = identifier) ;) (expression_statement "pppppppiStack_90 = param_3;" (assignment_expression "pppppppiStack_90 = param_3" identifier = identifier) ;) (expression_statement "puStack_8c = puVar26;" (assignment_expression "puStack_8c = puVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_88 = param_2;" (assignment_expression "pppppppiStack_88 = param_2" identifier = identifier) ;) (expression_statement "uStack_84 = param_1;" (assignment_expression "uStack_84 = param_1" identifier = identifier) ;) (expression_statement "pppppppiStack_80 = param_4;" (assignment_expression "pppppppiStack_80 = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_7c = pppppppiVar29;" (assignment_expression "pppppppiStack_7c = pppppppiVar29" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar6;" (assignment_expression "pcStack_74 = pcVar6" identifier = identifier) ;) (expression_statement "pppppppiStack_e8 = (int *******)FUN_00051ab4();" (assignment_expression "pppppppiStack_e8 = (int *******)FUN_00051ab4()" identifier = (cast_expression "(int *******)FUN_00051ab4()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00051ab4()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" if (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) (compound_statement "{\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }" { (expression_statement "iVar7 = *(int *)(puStack_c8 + -0x7c08);" (assignment_expression "iVar7 = *(int *)(puStack_c8 + -0x7c08)" identifier = (pointer_expression "*(int *)(puStack_c8 + -0x7c08)" * (cast_expression "(int *)(puStack_c8 + -0x7c08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c08)" ( (binary_expression "puStack_c8 + -0x7c08" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);" statement_identifier : (expression_statement "param_4 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "param_4 = (int *******)(ppppppiVar25 + 0x10)" identifier = (cast_expression "(int *******)(ppppppiVar25 + 0x10)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar25 + 0x10)" ( (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "pcStack_c0 = (code *)(iVar7 + -0x92c);" (assignment_expression "pcStack_c0 = (code *)(iVar7 + -0x92c)" identifier = (cast_expression "(code *)(iVar7 + -0x92c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x92c)" ( (binary_expression "iVar7 + -0x92c" identifier + number_literal) )))) ;) (expression_statement "pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);" (assignment_expression "pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" identifier = (cast_expression "(code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" ( (binary_expression "*(int *)(puStack_c8 + -0x7c60) + 0x63ec" (pointer_expression "*(int *)(puStack_c8 + -0x7c60)" * (cast_expression "(int *)(puStack_c8 + -0x7c60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c60)" ( (binary_expression "puStack_c8 + -0x7c60" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);" do (compound_statement "{\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    }" { (expression_statement "pppppppiVar5 = pppppppiStack_e8;" (assignment_expression "pppppppiVar5 = pppppppiStack_e8" identifier = identifier) ;) (expression_statement "pppppppiVar19 = (int *******)0x800000;" (assignment_expression "pppppppiVar19 = (int *******)0x800000" identifier = (cast_expression "(int *******)0x800000" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_e8 = pppppppiVar5;" (assignment_expression "pppppppiStack_e8 = pppppppiVar5" identifier = identifier) ;) (if_statement "if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;" if (parenthesized_expression "(*(char *)(pppppppiVar20 + 1) != '\n')" ( (binary_expression "*(char *)(pppppppiVar20 + 1) != '\n'" (pointer_expression "*(char *)(pppppppiVar20 + 1)" * (cast_expression "(char *)(pppppppiVar20 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 1)" ( (binary_expression "pppppppiVar20 + 1" identifier + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00051eb8;" goto statement_identifier ;)) (expression_statement "iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);" (assignment_expression "iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" identifier = (call_expression "(*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" (parenthesized_expression "(*pcStack_c0)" ( (pointer_expression "*pcStack_c0" * identifier) )) (argument_list "(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" ( identifier , identifier , (binary_expression "(uint)pppppppiVar18 | 0x800000" (cast_expression "(uint)pppppppiVar18" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "bVar15 = *(byte *)(pppppppiVar20 + 1);" (assignment_expression "bVar15 = *(byte *)(pppppppiVar20 + 1)" identifier = (pointer_expression "*(byte *)(pppppppiVar20 + 1)" * (cast_expression "(byte *)(pppppppiVar20 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 1)" ( (binary_expression "pppppppiVar20 + 1" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;" (assignment_expression "*(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar10 + 0x28) + iVar7" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" if (parenthesized_expression "((bVar15 & 0xf7) == 2)" ( (binary_expression "(bVar15 & 0xf7) == 2" (parenthesized_expression "(bVar15 & 0xf7)" ( (binary_expression "bVar15 & 0xf7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pppppppiVar22 = (int *******)0x0;\n      }" { (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" else (if_statement "if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" if (parenthesized_expression "((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9))" ( (binary_expression "(puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)" (parenthesized_expression "(puVar3 == (undefined *)0x0)" ( (binary_expression "puVar3 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pppppppiVar22 = (int *******)0x0, bVar15 != 9)" ( (comma_expression "pppppppiVar22 = (int *******)0x0, bVar15 != 9" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "bVar15 != 9" identifier != number_literal)) ))) )) (compound_statement "{\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" { (expression_statement "pppppppiVar29 = (int *******)ppppppiVar25[0x15];" (assignment_expression "pppppppiVar29 = (int *******)ppppppiVar25[0x15]" identifier = (cast_expression "(int *******)ppppppiVar25[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ]))) ;) (expression_statement "ppppppiVar25[0x15] = pppppiStack_b8;" (assignment_expression "ppppppiVar25[0x15] = pppppiStack_b8" (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_cc = piVar14;" (assignment_expression "piStack_cc = piVar14" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar3;" (assignment_expression "puStack_d0 = puVar3" identifier = identifier) ;) (expression_statement "pppppppiVar27 = pppppppiStack_b4;" (assignment_expression "pppppppiVar27 = pppppppiStack_b4" identifier = identifier) ;) (expression_statement "pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);" (assignment_expression "pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" identifier = (cast_expression "(int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" (parenthesized_expression "(*pcStack_b0)" ( (pointer_expression "*pcStack_b0" * identifier) )) (argument_list "(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }" if (parenthesized_expression "((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0))" ( (binary_expression "(*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)" (parenthesized_expression "(*piVar14 != 0)" ( (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" * identifier) != number_literal) )) && (parenthesized_expression "(pppppppiVar22 == (int *******)0x0)" ( (binary_expression "pppppppiVar22 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) (compound_statement "{\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }" { (expression_statement "pppppppiVar19 = (int *******)0x0;" (assignment_expression "pppppppiVar19 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }" if (parenthesized_expression "(pppppppiVar5 != (int *******)0x0)" ( (binary_expression "pppppppiVar5 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }" { (expression_statement "pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" identifier = (cast_expression "(int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" ( (binary_expression "*(int *)(puStack_c8 + -0x7c60) + 0x4588" (pointer_expression "*(int *)(puStack_c8 + -0x7c60)" * (cast_expression "(int *)(puStack_c8 + -0x7c60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c60)" ( (binary_expression "puStack_c8 + -0x7c60" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00042ca0(pppppppiVar5);" (call_expression "FUN_00042ca0(pppppppiVar5)" identifier (argument_list "(pppppppiVar5)" ( identifier ))) ;) })) (expression_statement "pppppppiStack_e8 = (int *******)0x0;" (assignment_expression "pppppppiStack_e8 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00051eb8;" goto statement_identifier ;) })) (expression_statement "pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);" (assignment_expression "pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" identifier = (cast_expression "(int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" ( (binary_expression "(uint)ppppppiVar25[0x15] | (uint)pppppppiVar29" (cast_expression "(uint)ppppppiVar25[0x15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ])) | (cast_expression "(uint)pppppppiVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "ppppppiVar25[0x15] = (int *****)pppppppiVar29;" (assignment_expression "ppppppiVar25[0x15] = (int *****)pppppppiVar29" (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ]) = (cast_expression "(int *****)pppppppiVar29" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) })))) (expression_statement "puStack_d0 = auStack_a4;" (assignment_expression "puStack_d0 = auStack_a4" identifier = identifier) ;) (expression_statement "uStack_a0 = 10;" (assignment_expression "uStack_a0 = 10" identifier = number_literal) ;) (expression_statement "pppppppiVar27 = param_4;" (assignment_expression "pppppppiVar27 = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);" (assignment_expression "pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe)" identifier = (cast_expression "(int *******)(*pcStack_bc)(ppppppiVar25 + 0xe)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcStack_bc)(ppppppiVar25 + 0xe)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(ppppppiVar25 + 0xe)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(pppppppiStack_e8 != (int *******)0x0)" ( (binary_expression "pppppppiStack_e8 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (expression_statement "*piVar14 = 0xc;" (assignment_expression "*piVar14 = 0xc" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "pppppppiVar19 = pppppppiVar5;" (assignment_expression "pppppppiVar19 = pppppppiVar5" identifier = identifier) ;) }) (else_clause "else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" else (compound_statement "{\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" { (expression_statement "iVar7 = *(int *)(puStack_c8 + -0x7c08);" (assignment_expression "iVar7 = *(int *)(puStack_c8 + -0x7c08)" identifier = (pointer_expression "*(int *)(puStack_c8 + -0x7c08)" * (cast_expression "(int *)(puStack_c8 + -0x7c08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c08)" ( (binary_expression "puStack_c8 + -0x7c08" identifier + number_literal) ))))) ;) (if_statement "if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;" if (parenthesized_expression "(pppppppiStack_e8 != (int *******)0x0)" ( (binary_expression "pppppppiStack_e8 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00051d9c;" goto statement_identifier ;)) (expression_statement "pppppppiStack_e8 = (int *******)0x0;" (assignment_expression "pppppppiStack_e8 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (labeled_statement "LAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }" statement_identifier : (if_statement "if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }" if (parenthesized_expression "(pppppppiStack_9c == (int *******)*puStack_ac)" ( (binary_expression "pppppppiStack_9c == (int *******)*puStack_ac" identifier == (cast_expression "(int *******)*puStack_ac" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_ac" * identifier))) )) (compound_statement "{\n    return pppppppiStack_e8;\n  }" { (return_statement "return pppppppiStack_e8;" return identifier ;) }))) (expression_statement "pcVar6 = *(code **)(puStack_c8 + -0x79d8);" (assignment_expression "pcVar6 = *(code **)(puStack_c8 + -0x79d8)" identifier = (pointer_expression "*(code **)(puStack_c8 + -0x79d8)" * (cast_expression "(code **)(puStack_c8 + -0x79d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_c8 + -0x79d8)" ( (binary_expression "puStack_c8 + -0x79d8" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = FUN_00051f24;" (assignment_expression "pcVar32 = FUN_00051f24" identifier = identifier) ;) (expression_statement "pppppppiVar5 = pppppppiStack_9c;" (assignment_expression "pppppppiVar5 = pppppppiStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_f4 = puVar3;" (assignment_expression "puStack_f4 = puVar3" identifier = identifier) ;) (expression_statement "piStack_f8 = piVar14;" (assignment_expression "piStack_f8 = piVar14" identifier = identifier) ;) (expression_statement "pppppppiVar5[3] = (int ******)pppppppiVar22;" (assignment_expression "pppppppiVar5[3] = (int ******)pppppppiVar22" (subscript_expression "pppppppiVar5[3]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar22" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar5[2] = (int ******)0x0;" (assignment_expression "pppppppiVar5[2] = (int ******)0x0" (subscript_expression "pppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar5[6] = (int ******)0x0;" (assignment_expression "pppppppiVar5[6] = (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar31 = *(uint **)(pcVar6 + 0x23cc4);" (assignment_expression "puVar31 = *(uint **)(pcVar6 + 0x23cc4)" identifier = (pointer_expression "*(uint **)(pcVar6 + 0x23cc4)" * (cast_expression "(uint **)(pcVar6 + 0x23cc4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cc4)" ( (binary_expression "pcVar6 + 0x23cc4" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar24 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "*(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;" (assignment_expression "*(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9" (pointer_expression "*(byte *)(pppppppiVar5 + 7)" * (cast_expression "(byte *)(pppppppiVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar5 + 7)" ( (binary_expression "pppppppiVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar5 + 7) & 9" (pointer_expression "*(byte *)(pppppppiVar5 + 7)" * (cast_expression "(byte *)(pppppppiVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar5 + 7)" ( (binary_expression "pppppppiVar5 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uStack_10c = *puVar31;" (assignment_expression "uStack_10c = *puVar31" identifier = (pointer_expression "*puVar31" * identifier)) ;) (expression_statement "pppppppiStack_108 = pppppppiVar20;" (assignment_expression "pppppppiStack_108 = pppppppiVar20" identifier = identifier) ;) (expression_statement "iStack_104 = iVar10;" (assignment_expression "iStack_104 = iVar10" identifier = identifier) ;) (expression_statement "ppppppiStack_100 = ppppppiVar25;" (assignment_expression "ppppppiStack_100 = ppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiStack_fc = pppppppiVar18;" (assignment_expression "pppppppiStack_fc = pppppppiVar18" identifier = identifier) ;) (expression_statement "pppppppiStack_f0 = param_4;" (assignment_expression "pppppppiStack_f0 = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_ec = pppppppiVar29;" (assignment_expression "pppppppiStack_ec = pppppppiVar29" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar32;" (assignment_expression "pcStack_e4 = pcVar32" identifier = identifier) ;) (if_statement "if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }" if (parenthesized_expression "(pppppppiVar5[1] < (int ******)0xa0)" ( (binary_expression "pppppppiVar5[1] < (int ******)0xa0" (subscript_expression "pppppppiVar5[1]" identifier [ number_literal ]) < (cast_expression "(int ******)0xa0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }" { (expression_statement "pppppppiVar18 = (int *******)0xa0;" (assignment_expression "pppppppiVar18 = (int *******)0xa0" identifier = (cast_expression "(int *******)0xa0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);" (assignment_expression "pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" identifier = (cast_expression "(int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c10))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c10)" * (pointer_expression "*(code **)(pcVar6 + 0x23c10)" * (cast_expression "(code **)(pcVar6 + 0x23c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c10)" ( (binary_expression "pcVar6 + 0x23c10" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar24,0xa0)" ( identifier , number_literal ))))) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }" { (expression_statement "pppppppiVar27 = (int *******)0xc;" (assignment_expression "pppppppiVar27 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000526ec;" goto statement_identifier ;) })) (expression_statement "*pppppppiVar5 = (int ******)pppppppiVar24;" (assignment_expression "*pppppppiVar5 = (int ******)pppppppiVar24" (pointer_expression "*pppppppiVar5" * identifier) = (cast_expression "(int ******)pppppppiVar24" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar5[1] = (int ******)0xa0;" (assignment_expression "pppppppiVar5[1] = (int ******)0xa0" (subscript_expression "pppppppiVar5[1]" identifier [ number_literal ]) = (cast_expression "(int ******)0xa0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) })) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23bb0);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23bb0)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" * (cast_expression "(code **)(pcVar6 + 0x23bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23bb0)" ( (binary_expression "pcVar6 + 0x23bb0" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar20 = (int *******)0xa0;" (assignment_expression "pppppppiVar20 = (int *******)0xa0" identifier = (cast_expression "(int *******)0xa0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar5[2] = (int ******)0xa0;" (assignment_expression "pppppppiVar5[2] = (int ******)0xa0" (subscript_expression "pppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int ******)0xa0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "(*pcVar32)(pppppppiVar24,0);" (call_expression "(*pcVar32)(pppppppiVar24,0)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppppiVar24,0)" ( identifier , number_literal ))) ;) (expression_statement "pppppppiVar24[0x10] = (int ******)0x1f;" (assignment_expression "pppppppiVar24[0x10] = (int ******)0x1f" (subscript_expression "pppppppiVar24[0x10]" identifier [ number_literal ]) = (cast_expression "(int ******)0x1f" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" if (parenthesized_expression "(pppppppiVar19 < (int *******)0xaaaaaaa)" ( (binary_expression "pppppppiVar19 < (int *******)0xaaaaaaa" identifier < (cast_expression "(int *******)0xaaaaaaa" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }" { (expression_statement "pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);" (assignment_expression "pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar19 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar19 + 1)" ( (binary_expression "(int)pppppppiVar19 + 1" (cast_expression "(int)pppppppiVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24[1] = (int ******)pppppppiVar29;" (assignment_expression "pppppppiVar24[1] = (int ******)pppppppiVar29" (subscript_expression "pppppppiVar24[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar29" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8)" identifier = (cast_expression "(int ******)(*pcVar32)((int)pppppppiVar29 * 8)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)((int)pppppppiVar29 * 8)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "((int)pppppppiVar29 * 8)" ( (binary_expression "(int)pppppppiVar29 * 8" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "*pppppppiVar24 = ppppppiVar25;" (assignment_expression "*pppppppiVar24 = ppppppiVar25" (pointer_expression "*pppppppiVar24" * identifier) = identifier) ;) (if_statement "if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" if (parenthesized_expression "(pppppppiVar19 == (int *******)0x0)" ( (binary_expression "pppppppiVar19 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }" { (expression_statement "ppppppiVar25 = (int ******)0x0;" (assignment_expression "ppppppiVar25 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" else (compound_statement "{\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" { (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);" do (compound_statement "{\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      }" { (expression_statement "pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);" (assignment_expression "pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2)" identifier = (cast_expression "(int *******)((int)pppppppiVar18 * 2)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar18 * 2)" ( (binary_expression "(int)pppppppiVar18 * 2" (cast_expression "(int)pppppppiVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);" (assignment_expression "ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1)" identifier = (cast_expression "(int ******)((int)pppppppiVar18 + -1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppiVar18 + -1)" ( (binary_expression "(int)pppppppiVar18 + -1" (cast_expression "(int)pppppppiVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pppppppiVar18 <= pppppppiVar19)" ( (binary_expression "pppppppiVar18 <= pppppppiVar19" identifier <= identifier) )) ;) }))) (expression_statement "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);" (assignment_expression "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" ( (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" * (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" * (cast_expression "(code **)(pcVar6 + 0x23aa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23aa4)" ( (binary_expression "pcVar6 + 0x23aa4" identifier + number_literal) ))))) )) (argument_list "(0xc,pppppppiVar18)" ( number_literal , identifier ))))) ;) (expression_statement "pppppppiVar24[0x11] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x11] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c44);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c44)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c44)" * (cast_expression "(code **)(pcVar6 + 0x23c44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c44)" ( (binary_expression "pcVar6 + 0x23c44" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24[8] = ppppppiVar8;" (assignment_expression "pppppppiVar24[8] = ppppppiVar8" (subscript_expression "pppppppiVar24[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)();" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)()" identifier = (cast_expression "(int ******)(*pcVar32)()" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23b44);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23b44)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23b44)" * (cast_expression "(code **)(pcVar6 + 0x23b44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23b44)" ( (binary_expression "pcVar6 + 0x23b44" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24[0x17] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x17] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar9 = (byte *)(*pcVar32)(0xe);" (assignment_expression "pbVar9 = (byte *)(*pcVar32)(0xe)" identifier = (cast_expression "(byte *)(*pcVar32)(0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar32)(0xe)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0xe)" ( number_literal ))))) ;) (expression_statement "pppppppiVar18 = (int *******)0x55;" (assignment_expression "pppppppiVar18 = (int *******)0x55" identifier = (cast_expression "(int *******)0x55" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }" if (parenthesized_expression "((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46))" ( (binary_expression "(((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54))" ( (binary_expression "((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar9 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar9 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar9 & 0xdf)" ( (binary_expression "*pbVar9 & 0xdf" (pointer_expression "*pbVar9" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)" ( (comma_expression "pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54" (assignment_expression "pppppppiVar18 = (int *******)&DAT_00000046" identifier = (cast_expression "(int *******)&DAT_00000046" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000046" & identifier))) , (binary_expression "(pbVar9[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar9[1] & 0xdf)" ( (binary_expression "pbVar9[1] & 0xdf" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)" ( (comma_expression "pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46" (assignment_expression "pppppppiVar18 = (int *******)&DAT_00000004" identifier = (cast_expression "(int *******)&DAT_00000004" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000004" & identifier))) , (binary_expression "(pbVar9[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar9[2] & 0xdf)" ( (binary_expression "pbVar9[2] & 0xdf" (subscript_expression "pbVar9[2]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }" { (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (if_statement "if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }" if (parenthesized_expression "(pbVar9[3] == 0x2d)" ( (binary_expression "pbVar9[3] == 0x2d" (subscript_expression "pbVar9[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar10 = 4;\n      }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) })) (expression_statement "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);" (assignment_expression "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x2b48)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2b48" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);" (assignment_expression "iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d14))" ( (pointer_expression "**(code **)(pcVar6 + 0x23d14)" * (pointer_expression "*(code **)(pcVar6 + 0x23d14)" * (cast_expression "(code **)(pcVar6 + 0x23d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23d14)" ( (binary_expression "pcVar6 + 0x23d14" identifier + number_literal) ))))) )) (argument_list "(pbVar9 + iVar10,pppppppiVar18)" ( (binary_expression "pbVar9 + iVar10" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }" { (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xdf" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "bVar15 = *(byte *)(pppppppiVar24 + 0x16);" (assignment_expression "bVar15 = *(byte *)(pppppppiVar24 + 0x16)" identifier = (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "bVar15 & 0xef" identifier & number_literal)) ;) (if_statement "if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" if (parenthesized_expression "((int)pppppppiVar24[0x17] < 2)" ( (binary_expression "(int)pppppppiVar24[0x17] < 2" (cast_expression "(int)pppppppiVar24[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }" { (labeled_statement "LAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;" statement_identifier : (expression_statement "ppppppiVar25 = *pppppppiVar24;" (assignment_expression "ppppppiVar25 = *pppppppiVar24" identifier = (pointer_expression "*pppppppiVar24" * identifier)) ;)) }) (else_clause "else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" else (compound_statement "{\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" { (if_statement "if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" if (parenthesized_expression "((bVar15 & 0x20) != 0)" ( (binary_expression "(bVar15 & 0x20) != 0" (parenthesized_expression "(bVar15 & 0x20)" ( (binary_expression "bVar15 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" { (expression_statement "pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);" (assignment_expression "pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064)" (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ]) = (cast_expression "(int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x3064)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x3064" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00052094;" goto statement_identifier ;) })) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);" (assignment_expression "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" ( (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" * (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" * (cast_expression "(code **)(pcVar6 + 0x23aa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23aa4)" ( (binary_expression "pcVar6 + 0x23aa4" identifier + number_literal) ))))) )) (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pppppppiVar24[0xf] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xf] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;" if (parenthesized_expression "(ppppppiVar25 == (int ******)0x0)" ( (binary_expression "ppppppiVar25 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);" do (compound_statement "{\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      }" { (expression_statement "uVar16 = iVar10 << 3;" (assignment_expression "uVar16 = iVar10 << 3" identifier = (binary_expression "iVar10 << 3" identifier << number_literal)) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);" do (compound_statement "{\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        }" { (while_statement "while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }" { (expression_statement "uVar21 = uVar28;" (assignment_expression "uVar21 = uVar28" identifier = identifier) ;) (expression_statement "uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);" (assignment_expression "uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23b9c))(uVar16)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23b9c))" ( (pointer_expression "**(code **)(pcVar6 + 0x23b9c)" * (pointer_expression "*(code **)(pcVar6 + 0x23b9c)" * (cast_expression "(code **)(pcVar6 + 0x23b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23b9c)" ( (binary_expression "pcVar6 + 0x23b9c" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier )))) ;) (if_statement "if (uVar28 == 0xffffffff) break;" if (parenthesized_expression "(uVar28 == 0xffffffff)" ( (binary_expression "uVar28 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);" (assignment_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10)" * (cast_expression "(uint *)((int)pppppppiVar24[0xf] + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar24[0xf] + iVar10)" ( (binary_expression "(int)pppppppiVar24[0xf] + iVar10" (cast_expression "(int)pppppppiVar24[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ])) + identifier) )))) = (binary_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10)" * (cast_expression "(uint *)((int)pppppppiVar24[0xf] + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar24[0xf] + iVar10)" ( (binary_expression "(int)pppppppiVar24[0xf] + iVar10" (cast_expression "(int)pppppppiVar24[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ])) + identifier) )))) | (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }" if (parenthesized_expression "(((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16))" ( (binary_expression "((uVar16 & 0xffffff80) == 0) && (uVar28 != 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 "(uVar28 != uVar16)" ( (binary_expression "uVar28 != uVar16" identifier != identifier) ))) )) (compound_statement "{\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }" { (labeled_statement "LAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;" statement_identifier : (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xef" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;)) })) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar28 = uVar21 + 1;" (assignment_expression "uVar28 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar21 + 1 == 0x20) goto LAB_000527e4;" if (parenthesized_expression "(uVar21 + 1 == 0x20)" ( (binary_expression "uVar21 + 1 == 0x20" (binary_expression "uVar21 + 1" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_000527e4;" goto statement_identifier ;)) })) (if_statement "if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;" if (parenthesized_expression "((uVar16 & 0xffffff80) == 0)" ( (binary_expression "(uVar16 & 0xffffff80) == 0" (parenthesized_expression "(uVar16 & 0xffffff80)" ( (binary_expression "uVar16 & 0xffffff80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00052780;" goto statement_identifier ;)) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar28 = uVar21 + 1;" (assignment_expression "uVar28 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 + 1 != 0x20)" ( (binary_expression "uVar21 + 1 != 0x20" (binary_expression "uVar21 + 1" identifier + number_literal) != number_literal) )) ;) (labeled_statement "LAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);" statement_identifier : (expression_statement "pppppppiVar20 = (int *******)(uVar21 + 1);" (assignment_expression "pppppppiVar20 = (int *******)(uVar21 + 1)" identifier = (cast_expression "(int *******)(uVar21 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )))) ;)) (expression_statement "iVar10 = iVar10 + 4;" (assignment_expression "iVar10 = iVar10 + 4" identifier = (binary_expression "iVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 != 0x20)" ( (binary_expression "iVar10 != 0x20" identifier != number_literal) )) ;) (expression_statement "ppppppiVar25 = *pppppppiVar24;" (assignment_expression "ppppppiVar25 = *pppppppiVar24" identifier = (pointer_expression "*pppppppiVar24" * identifier)) ;) (expression_statement "pppppppiVar18 = (int *******)0x20;" (assignment_expression "pppppppiVar18 = (int *******)0x20" identifier = (cast_expression "(int *******)0x20" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (if_statement "if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;" if (parenthesized_expression "((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))" ( (binary_expression "(ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0)" (parenthesized_expression "(ppppppiVar25 == (int ******)0x0)" ( (binary_expression "ppppppiVar25 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0)" ( (comma_expression "iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0" (assignment_expression "iVar10 = *(int *)(pcVar6 + 0x23b8c)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x23b8c)" * (cast_expression "(int *)(pcVar6 + 0x23b8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23b8c)" ( (binary_expression "pcVar6 + 0x23b8c" identifier + number_literal) ))))) , (binary_expression "pppppppiVar24[8] == (int ******)0x0" (subscript_expression "pppppppiVar24[8]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }" { (labeled_statement "LAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];" statement_identifier : (expression_statement "ppppppiVar8 = pppppppiVar5[5];" (assignment_expression "ppppppiVar8 = pppppppiVar5[5]" identifier = (subscript_expression "pppppppiVar5[5]" identifier [ number_literal ])) ;)) (expression_statement "(**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);" (call_expression "(**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23bb0))" ( (pointer_expression "**(code **)(pcVar6 + 0x23bb0)" * (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" * (cast_expression "(code **)(pcVar6 + 0x23bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23bb0)" ( (binary_expression "pcVar6 + 0x23bb0" identifier + number_literal) ))))) )) (argument_list "(apppppppiStack_15c,0,0x4c)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uVar28 = (uint)pppppppiVar22 & 0x400000;" (assignment_expression "uVar28 = (uint)pppppppiVar22 & 0x400000" identifier = (binary_expression "(uint)pppppppiVar22 & 0x400000" (cast_expression "(uint)pppppppiVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uStack_118 = uVar28 != 0;" (assignment_expression "uStack_118 = uVar28 != 0" identifier = (binary_expression "uVar28 != 0" identifier != number_literal)) ;) (expression_statement "ppppppiVar25 = pppppppiVar24[0x17];" (assignment_expression "ppppppiVar25 = pppppppiVar24[0x17]" identifier = (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }" if (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" ( (binary_expression "ppppppiVar8 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }" { (expression_statement "pppppppiVar18 = (int *******)(uint)(byte)uStack_118;" (assignment_expression "pppppppiVar18 = (int *******)(uint)(byte)uStack_118" identifier = (cast_expression "(int *******)(uint)(byte)uStack_118" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)(byte)uStack_118" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uStack_118" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) })) (expression_statement "uVar16 = (int)pppppppiVar24[0x16] << 2;" (assignment_expression "uVar16 = (int)pppppppiVar24[0x16] << 2" identifier = (binary_expression "(int)pppppppiVar24[0x16] << 2" (cast_expression "(int)pppppppiVar24[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x16]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pppppppiVar20 = (int *******)(uVar16 >> 0x1f);" (assignment_expression "pppppppiVar20 = (int *******)(uVar16 >> 0x1f)" identifier = (cast_expression "(int *******)(uVar16 >> 0x1f)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar16 >> 0x1f)" ( (binary_expression "uVar16 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "bStack_115 = (byte)pppppppiVar18;" (assignment_expression "bStack_115 = (byte)pppppppiVar18" identifier = (cast_expression "(byte)pppppppiVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bStack_117 = (byte)(uVar16 >> 0x1f);" (assignment_expression "bStack_117 = (byte)(uVar16 >> 0x1f)" identifier = (call_expression "(byte)(uVar16 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar16 >> 0x1f)" ( (binary_expression "uVar16 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppiVar24[0x16] << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppiVar24[0x16] << 3)" ( (binary_expression "(int)pppppppiVar24[0x16] << 3" (cast_expression "(int)pppppppiVar24[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppiVar4 = (int *******)(uint)(byte)uStack_118;" (assignment_expression "pppppppiVar4 = (int *******)(uint)(byte)uStack_118" identifier = (cast_expression "(int *******)(uint)(byte)uStack_118" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)(byte)uStack_118" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uStack_118" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (expression_statement "pppppppiStack_160 = pppppppiVar27;" (assignment_expression "pppppppiStack_160 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiStack_134 = pppppppiVar19;" (assignment_expression "pppppppiStack_134 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_130 = pppppppiVar19;" (assignment_expression "pppppppiStack_130 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_12c = pppppppiVar19;" (assignment_expression "pppppppiStack_12c = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_128 = pppppppiVar19;" (assignment_expression "pppppppiStack_128 = pppppppiVar19" identifier = identifier) ;) (expression_statement "ppppppiStack_120 = ppppppiVar8;" (assignment_expression "ppppppiStack_120 = ppppppiVar8" identifier = identifier) ;) (expression_statement "ppppppiStack_110 = ppppppiVar25;" (assignment_expression "ppppppiStack_110 = ppppppiVar25" identifier = identifier) ;) (if_statement "if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }" if (parenthesized_expression "(pppppppiVar19 == (int *******)0x0)" ( (binary_expression "pppppppiVar19 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }" { (labeled_statement "LAB_00052158:\n        pppppppiVar29 = pppppppiVar4;" statement_identifier : (expression_statement "pppppppiVar29 = pppppppiVar4;" (assignment_expression "pppppppiVar29 = pppppppiVar4" identifier = identifier) ;)) (if_statement "if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }" { (expression_statement "pppppppiVar27 = apppppppiStack_15c[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_15c[0]" identifier = (subscript_expression "apppppppiStack_15c[0]" identifier [ number_literal ])) ;) })) (expression_statement "apppppppiStack_15c[0] = pppppppiVar27;" (assignment_expression "apppppppiStack_15c[0] = pppppppiVar27" (subscript_expression "apppppppiStack_15c[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }" { (if_statement "if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" if (parenthesized_expression "(1 < (int)ppppppiVar25)" ( (binary_expression "1 < (int)ppppppiVar25" number_literal < (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }" { (expression_statement "FUN_000437e4(&pppppppiStack_160);" (call_expression "FUN_000437e4(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) }) (else_clause "else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" else (if_statement "if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" if (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" ( (binary_expression "ppppppiVar8 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }" { (expression_statement "pppppppiStack_140 = pppppppiStack_13c;" (assignment_expression "pppppppiStack_140 = pppppppiStack_13c" identifier = identifier) ;) (expression_statement "pppppppiVar18 = pppppppiStack_13c;" (assignment_expression "pppppppiVar18 = pppppppiStack_13c" identifier = identifier) ;) }) (else_clause "else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" else (compound_statement "{\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" { (if_statement "if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }" if (parenthesized_expression "((int)pppppppiStack_130 <= (int)pppppppiStack_13c)" ( (binary_expression "(int)pppppppiStack_130 <= (int)pppppppiStack_13c" (cast_expression "(int)pppppppiStack_130" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pppppppiStack_13c = pppppppiStack_130;\n            }" { (expression_statement "pppppppiStack_13c = pppppppiStack_130;" (assignment_expression "pppppppiStack_13c = pppppppiStack_130" identifier = identifier) ;) })) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) (expression_statement "pppppppiStack_140 = pppppppiStack_144;" (assignment_expression "pppppppiStack_140 = pppppppiStack_144" identifier = identifier) ;) (if_statement "if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }" if (parenthesized_expression "((int)pppppppiStack_144 < (int)pppppppiStack_13c)" ( (binary_expression "(int)pppppppiStack_144 < (int)pppppppiStack_13c" (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }" { (do_statement "do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);" do (compound_statement "{\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              }" { (expression_statement "puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);" (assignment_expression "puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144)" identifier = (cast_expression "(undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar27 + (int)pppppppiStack_144)" ( (binary_expression "(int)pppppppiVar27 + (int)pppppppiStack_144" (cast_expression "(int)pppppppiVar27" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;" (assignment_expression "iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144" identifier = (binary_expression "(int)pppppppiStack_160 + (int)pppppppiStack_144" (cast_expression "(int)pppppppiStack_160" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);" (assignment_expression "pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_144 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_144 + 1)" ( (binary_expression "(int)pppppppiStack_144 + 1" (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));" (assignment_expression "*puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" (pointer_expression "*puVar12" * identifier) = (pointer_expression "*(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" * (cast_expression "(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" ( (binary_expression "(int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148)" (cast_expression "(int)ppppppiStack_120" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(byte *)(iVar7 + iStack_148)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + iStack_148)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iStack_148)" ( (binary_expression "iVar7 + iStack_148" identifier + identifier) ))))) ))))) ;) (expression_statement "pppppppiVar18 = pppppppiStack_13c;" (assignment_expression "pppppppiVar18 = pppppppiStack_13c" identifier = identifier) ;) (expression_statement "pppppppiStack_140 = pppppppiStack_13c;" (assignment_expression "pppppppiStack_140 = pppppppiStack_13c" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiStack_13c != pppppppiStack_144)" ( (binary_expression "pppppppiStack_13c != pppppppiStack_144" identifier != identifier) )) ;) })) }))))) }) (else_clause "else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" else (compound_statement "{\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" { (if_statement "if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }" if (parenthesized_expression "(1 < (int)ppppppiVar25)" ( (binary_expression "1 < (int)ppppppiVar25" number_literal < (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }" { (do_statement "do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);" do (compound_statement "{\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            }" { (expression_statement "pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160)" identifier = (cast_expression "(int *******)FUN_00043a6c(&pppppppiStack_160)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00043a6c(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))))) ;) (if_statement "if (pppppppiVar18 != (int *******)0x0) break;" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) (if_statement "if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;" if (parenthesized_expression "(((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))" ( (binary_expression "((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c)" (parenthesized_expression "((int)pppppppiVar19 <= (int)pppppppiStack_140)" ( (binary_expression "(int)pppppppiVar19 <= (int)pppppppiStack_140" (cast_expression "(int)pppppppiVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppiStack_140" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c)" ( (comma_expression "pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c" (assignment_expression "pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_13c << 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_13c << 1)" ( (binary_expression "(int)pppppppiStack_13c << 1" (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) , (binary_expression "(int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c" (binary_expression "(int)pppppppiStack_144 + (int)pppppppiVar24[0x17]" (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiVar24[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ]))) < (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_00052338;" goto statement_identifier ;)) (expression_statement "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier (argument_list "(&pppppppiStack_160,pppppppiVar29)" ( (pointer_expression "&pppppppiStack_160" & identifier) , identifier ))))) ;) }) while (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) (expression_statement "FUN_00043700(&pppppppiStack_160);" (call_expression "FUN_00043700(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) }))) (labeled_statement "LAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;" statement_identifier : (expression_statement "pppppppiStack_144 = pppppppiVar18;" (assignment_expression "pppppppiStack_144 = pppppppiVar18" identifier = identifier) ;)) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppiVar25 = *pppppppiVar5;" (assignment_expression "ppppppiVar25 = *pppppppiVar5" identifier = (pointer_expression "*pppppppiVar5" * identifier)) ;) (expression_statement "pppppppiVar5[6] = (int ******)0x0;" (assignment_expression "pppppppiVar5[6] = (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppiVar25[0x20] = (int *****)pppppppiVar22;" (assignment_expression "ppppppiVar25[0x20] = (int *****)pppppppiVar22" (subscript_expression "ppppppiVar25[0x20]" identifier [ number_literal ]) = (cast_expression "(int *****)pppppppiVar22" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);" (assignment_expression "iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" identifier = (call_expression "FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" identifier (argument_list "(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" ( identifier , (pointer_expression "&pppppppiStack_160" & identifier) , (binary_expression "(uint)pppppppiVar22 | 0x800000" (cast_expression "(uint)pppppppiVar22" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "iStack_138 = iStack_138 + iVar7;" (assignment_expression "iStack_138 = iStack_138 + iVar7" identifier = (binary_expression "iStack_138 + iVar7" identifier + identifier)) ;) (expression_statement "pppppppiVar29 = pppppppiVar5;" (assignment_expression "pppppppiVar29 = pppppppiVar5" identifier = identifier) ;) (expression_statement "pppppppiVar20 = (int *******)apppppppiStack_174;" (assignment_expression "pppppppiVar20 = (int *******)apppppppiStack_174" identifier = (cast_expression "(int *******)apppppppiStack_174" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);" (assignment_expression "pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" identifier = (cast_expression "(int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" identifier (argument_list "(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" ( (pointer_expression "&pppppppiStack_160" & identifier) , identifier , identifier , identifier , number_literal , (pointer_expression "&pppppppiStack_178" & identifier) ))))) ;) (if_statement "if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" if (parenthesized_expression "(pppppppiStack_178 == (int *******)0x0)" ( (binary_expression "pppppppiStack_178 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }" { (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10)" identifier = (cast_expression "(int *******)(ppppppiVar25 + 0x10)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar25 + 0x10)" ( (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) )))) ;) (expression_statement "iStack_168 = CONCAT13(2,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(2,iStack_168._1_3_)" identifier = (call_expression "CONCAT13(2,iStack_168._1_3_)" identifier (argument_list "(2,iStack_168._1_3_)" ( number_literal , (field_expression "iStack_168._1_3_" identifier . field_identifier) )))) ;) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);" (assignment_expression "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" identifier = (cast_expression "(int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" identifier (argument_list "(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) , identifier , number_literal , number_literal , (pointer_expression "&ppppppiStack_16c" & identifier) ))))) ;) (expression_statement "ppppppiVar11 = ppppppiVar8;" (assignment_expression "ppppppiVar11 = ppppppiVar8" identifier = identifier) ;) (if_statement "if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;" if (parenthesized_expression "(pppppppiVar27 == (int *******)0x0)" ( (binary_expression "pppppppiVar27 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00052400;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" else (compound_statement "{\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" { (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (if_statement "if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }" if (parenthesized_expression "(pppppppiVar27 == (int *******)0x0)" ( (binary_expression "pppppppiVar27 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }" { (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (expression_statement "pppppppiVar24[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar24[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (goto_statement "goto LAB_000521dc;" goto statement_identifier ;) })) (expression_statement "iStack_168 = CONCAT13(2,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(2,iStack_168._1_3_)" identifier = (call_expression "CONCAT13(2,iStack_168._1_3_)" identifier (argument_list "(2,iStack_168._1_3_)" ( number_literal , (field_expression "iStack_168._1_3_" identifier . field_identifier) )))) ;) (expression_statement "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);" (assignment_expression "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" identifier = (cast_expression "(int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" identifier (argument_list "(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) , (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&ppppppiStack_16c" & identifier) ))))) ;) }))) (expression_statement "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10)" identifier = (cast_expression "(int *******)(ppppppiVar25 + 0x10)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar25 + 0x10)" ( (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) )))) ;) (expression_statement "iStack_168 = CONCAT13(0x10,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(0x10,iStack_168._1_3_)" identifier = (call_expression "CONCAT13(0x10,iStack_168._1_3_)" identifier (argument_list "(0x10,iStack_168._1_3_)" ( number_literal , (field_expression "iStack_168._1_3_" identifier . field_identifier) )))) ;) (expression_statement "ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);" (assignment_expression "ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" identifier = (cast_expression "(int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" (parenthesized_expression "(*(code *)(iVar7 + 0x63ec))" ( (pointer_expression "*(code *)(iVar7 + 0x63ec)" * (cast_expression "(code *)(iVar7 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x63ec)" ( (binary_expression "iVar7 + 0x63ec" identifier + number_literal) )))) )) (argument_list "(ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) , identifier , identifier , identifier , (pointer_expression "&ppppppiStack_16c" & identifier) ))))) ;) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" identifier = identifier) ;) (labeled_statement "LAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;" statement_identifier : (expression_statement "pppppppiVar19 = &ppppppiStack_16c;" (assignment_expression "pppppppiVar19 = &ppppppiStack_16c" identifier = (pointer_expression "&ppppppiStack_16c" & identifier)) ;)) (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (if_statement "if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" if (parenthesized_expression "((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0))" ( (binary_expression "(ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)" (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" ( (binary_expression "ppppppiVar8 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)" ( (comma_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) , (binary_expression "ppppppiVar11 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }" { (expression_statement "pppppppiVar24[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar24[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" else (compound_statement "{\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" { (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[1]" identifier = (cast_expression "(int *******)pppppppiVar27[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[1]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar24[0xd] = ppppppiVar11;" (assignment_expression "pppppppiVar24[0xd] = ppppppiVar11" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2)" identifier = (cast_expression "(int ******)(*pcVar32)((int)pppppppiVar29 << 2)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)((int)pppppppiVar29 << 2)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "((int)pppppppiVar29 << 2)" ( (binary_expression "(int)pppppppiVar29 << 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar27[3] = ppppppiVar25;" (assignment_expression "pppppppiVar27[3] = ppppppiVar25" (subscript_expression "pppppppiVar27[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);" (assignment_expression "pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2)" identifier = (cast_expression "(int *******)(*pcVar32)((int)pppppppiVar29 << 2)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar32)((int)pppppppiVar29 << 2)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "((int)pppppppiVar29 << 2)" ( (binary_expression "(int)pppppppiVar29 << 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pppppppiVar27[4] = (int ******)pppppppiVar20;" (assignment_expression "pppppppiVar27[4] = (int ******)pppppppiVar20" (subscript_expression "pppppppiVar27[4]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar20" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "iVar7 = (int)pppppppiVar29 * 0xc;" (assignment_expression "iVar7 = (int)pppppppiVar29 * 0xc" identifier = (binary_expression "(int)pppppppiVar29 * 0xc" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);" (assignment_expression "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))(iVar7)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar27[5] = ppppppiVar8;" (assignment_expression "pppppppiVar27[5] = ppppppiVar8" (subscript_expression "pppppppiVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar11 = (int ******)(*pcVar32)(iVar7);" (assignment_expression "ppppppiVar11 = (int ******)(*pcVar32)(iVar7)" identifier = (cast_expression "(int ******)(*pcVar32)(iVar7)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)(iVar7)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "pppppppiVar27[6] = ppppppiVar11;" (assignment_expression "pppppppiVar27[6] = ppppppiVar11" (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" if (parenthesized_expression "((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0))" ( (binary_expression "(((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)" (parenthesized_expression "(((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0))" ( (binary_expression "((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)" (parenthesized_expression "((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0))" ( (binary_expression "(ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)" (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar20 != (int *******)0x0)" ( (binary_expression "pppppppiVar20 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) && (parenthesized_expression "(ppppppiVar8 != (int ******)0x0)" ( (binary_expression "ppppppiVar8 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "(ppppppiVar11 != (int ******)0x0)" ( (binary_expression "ppppppiVar11 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" { (expression_statement "ppppppiVar8 = pppppppiVar5[6];" (assignment_expression "ppppppiVar8 = pppppppiVar5[6]" identifier = (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);" (assignment_expression "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiVar8 << 2)" ( (binary_expression "(int)ppppppiVar8 << 2" (cast_expression "(int)ppppppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pppppppiVar27[0x21] = ppppppiVar25;" (assignment_expression "pppppppiVar27[0x21] = ppppppiVar25" (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }" { (expression_statement "ppppppiVar11 = (int ******)0x0;" (assignment_expression "ppppppiVar11 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }" if (parenthesized_expression "(ppppppiVar8 != (int ******)0x0)" ( (binary_expression "ppppppiVar8 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }" { (do_statement "do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);" do (compound_statement "{\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                }" { (expression_statement "*ppppppiVar25 = (int *****)ppppppiVar11;" (assignment_expression "*ppppppiVar25 = (int *****)ppppppiVar11" (pointer_expression "*ppppppiVar25" * identifier) = (cast_expression "(int *****)ppppppiVar11" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);" (assignment_expression "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar11 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar11 + 1)" ( (binary_expression "(int)ppppppiVar11 + 1" (cast_expression "(int)ppppppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppiVar25 = ppppppiVar25 + 1;" (assignment_expression "ppppppiVar25 = ppppppiVar25 + 1" identifier = (binary_expression "ppppppiVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppiVar11 != ppppppiVar8)" ( (binary_expression "ppppppiVar11 != ppppppiVar8" identifier != identifier) )) ;) })) (expression_statement "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);" (call_expression "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27)" identifier (argument_list "(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x54d4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" if (parenthesized_expression "(pppppppiVar5[6] == (int ******)0x0)" ( (binary_expression "pppppppiVar5[6] == (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }" { (expression_statement "ppppppiVar25 = pppppppiVar27[0x21];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0x21]" identifier = (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);" statement_identifier : (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar25)" ( identifier ))) ;)) (expression_statement "pppppppiVar27[0x21] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0x21] = (int ******)0x0" (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) (else_clause "else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" else (compound_statement "{\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" { (expression_statement "ppppppiVar25 = pppppppiVar27[0x21];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0x21]" identifier = (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ])) ;) (if_statement "if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }" if (parenthesized_expression "(*ppppppiVar25 == (int *****)0x0)" ( (binary_expression "*ppppppiVar25 == (int *****)0x0" (pointer_expression "*ppppppiVar25" * identifier) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }" { (expression_statement "ppppppiVar11 = (int ******)0x0;" (assignment_expression "ppppppiVar11 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppiVar8 = ppppppiVar25;" (assignment_expression "ppppppiVar8 = ppppppiVar25" identifier = identifier) ;) (do_statement "do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);" do (compound_statement "{\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  }" { (expression_statement "ppppppiVar8 = ppppppiVar8 + 1;" (assignment_expression "ppppppiVar8 = ppppppiVar8 + 1" identifier = (binary_expression "ppppppiVar8 + 1" identifier + number_literal)) ;) (expression_statement "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);" (assignment_expression "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar11 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar11 + 1)" ( (binary_expression "(int)ppppppiVar11 + 1" (cast_expression "(int)ppppppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;" if (parenthesized_expression "(ppppppiVar11 == pppppppiVar5[6])" ( (binary_expression "ppppppiVar11 == pppppppiVar5[6]" identifier == (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00052530;" goto statement_identifier ;)) }) while (parenthesized_expression "((int ******)*ppppppiVar8 == ppppppiVar11)" ( (binary_expression "(int ******)*ppppppiVar8 == ppppppiVar11" (cast_expression "(int ******)*ppppppiVar8" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppiVar8" * identifier)) == identifier) )) ;) })) }))) })) (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x68f4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar20 = pppppppiVar5;" (assignment_expression "pppppppiVar20 = pppppppiVar5" identifier = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" { (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23a54) + -0x6734)" ( (binary_expression "*(int *)(pcVar6 + 0x23a54) + -0x6734" (pointer_expression "*(int *)(pcVar6 + 0x23a54)" * (cast_expression "(int *)(pcVar6 + 0x23a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23a54)" ( (binary_expression "pcVar6 + 0x23a54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" { (expression_statement "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);" (call_expression "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27)" identifier (argument_list "(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x55a0" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x4ecc" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" identifier (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" { (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (labeled_statement "LAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;" statement_identifier : (if_statement "if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;" if (parenthesized_expression "(pppppppiVar18 == pppppppiVar22)" ( (binary_expression "pppppppiVar18 == pppppppiVar22" identifier == identifier) )) (goto_statement "goto LAB_00052620;" goto statement_identifier ;))) (labeled_statement "LAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;" statement_identifier : (expression_statement "iVar23 = (int)pppppppiVar22 * 0xc;" (assignment_expression "iVar23 = (int)pppppppiVar22 * 0xc" identifier = (binary_expression "(int)pppppppiVar22 * 0xc" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;)) (if_statement "if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;" if (parenthesized_expression "(pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)" ( (binary_expression "pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0" (subscript_expression "pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1]" (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ]) [ (binary_expression "(int)pppppppiVar22 * 3 + 1" (binary_expression "(int)pppppppiVar22 * 3" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00052650;" goto statement_identifier ;)) (labeled_statement "LAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" statement_identifier : (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar22 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar22 + 1)" ( (binary_expression "(int)pppppppiVar22 + 1" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }" if (parenthesized_expression "(pppppppiVar18 == pppppppiVar22)" ( (binary_expression "pppppppiVar18 == pppppppiVar22" identifier == identifier) )) (compound_statement "{\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }" { (labeled_statement "LAB_00052620:\n                    if (bVar1) goto LAB_00052628;" statement_identifier : (if_statement "if (bVar1) goto LAB_00052628;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00052628;" goto statement_identifier ;))) (if_statement "if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;" if (parenthesized_expression "((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0))" ( (binary_expression "(((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)" (parenthesized_expression "(((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16)))" ( (binary_expression "((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))" (parenthesized_expression "((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0))" ( (binary_expression "(((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)" (parenthesized_expression "(((uint)pppppppiVar5[7] & 0x8000000) != 0)" ( (binary_expression "((uint)pppppppiVar5[7] & 0x8000000) != 0" (parenthesized_expression "((uint)pppppppiVar5[7] & 0x8000000)" ( (binary_expression "(uint)pppppppiVar5[7] & 0x8000000" (cast_expression "(uint)pppppppiVar5[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar5[7]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) || (parenthesized_expression "(pppppppiVar5[6] == (int ******)0x0)" ( (binary_expression "pppppppiVar5[6] == (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) || (parenthesized_expression "(-1 < *(char *)(pppppppiVar27 + 0x16))" ( (binary_expression "-1 < *(char *)(pppppppiVar27 + 0x16)" number_literal < (pointer_expression "*(char *)(pppppppiVar27 + 0x16)" * (cast_expression "(char *)(pppppppiVar27 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar27 + 0x16)" ( (binary_expression "pppppppiVar27 + 0x16" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(pppppppiVar27[0x13] == (int ******)0x0)" ( (binary_expression "pppppppiVar27[0x13] == (int ******)0x0" (subscript_expression "pppppppiVar27[0x13]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00052998;" goto statement_identifier ;)) (expression_statement "ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);" (assignment_expression "ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" identifier = (cast_expression "(int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "((int)pppppppiVar22 * 0xc)" ( (binary_expression "(int)pppppppiVar22 * 0xc" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "pppppppiVar27[7] = ppppppiVar25;" (assignment_expression "pppppppiVar27[7] = ppppppiVar25" (subscript_expression "pppppppiVar27[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" { (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" if (parenthesized_expression "(pppppppiVar22 != (int *******)0x0)" ( (binary_expression "pppppppiVar22 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }" { (expression_statement "puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);" (assignment_expression "puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppppppiVar25 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar25 + iVar7)" ( (binary_expression "(int)ppppppiVar25 + iVar7" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);" (assignment_expression "pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar18 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar18 + 1)" ( (binary_expression "(int)pppppppiVar18 + 1" (cast_expression "(int)pppppppiVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar12[1] = 0;" (assignment_expression "puVar12[1] = 0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[2] = 0;" (assignment_expression "puVar12[2] = 0" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[3] = 0;" (assignment_expression "puVar12[3] = 0" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[4] = 0;" (assignment_expression "puVar12[4] = 0" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[5] = 0;" (assignment_expression "puVar12[5] = 0" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[6] = 0;" (assignment_expression "puVar12[6] = 0" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[7] = 0;" (assignment_expression "puVar12[7] = 0" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[8] = 0;" (assignment_expression "puVar12[8] = 0" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[9] = 0;" (assignment_expression "puVar12[9] = 0" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[10] = 0;" (assignment_expression "puVar12[10] = 0" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[0xb] = 0;" (assignment_expression "puVar12[0xb] = 0" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = iVar7 + 0xc;" (assignment_expression "iVar7 = iVar7 + 0xc" identifier = (binary_expression "iVar7 + 0xc" identifier + number_literal)) ;) (if_statement "if (pppppppiVar29 <= pppppppiVar18) break;" if (parenthesized_expression "(pppppppiVar29 <= pppppppiVar18)" ( (binary_expression "pppppppiVar29 <= pppppppiVar18" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "ppppppiVar25 = pppppppiVar27[7];" (assignment_expression "ppppppiVar25 = pppppppiVar27[7]" identifier = (subscript_expression "pppppppiVar27[7]" identifier [ number_literal ])) ;) })) (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }" if (parenthesized_expression "(pppppppiVar29 != (int *******)0x0)" ( (binary_expression "pppppppiVar29 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }" { (expression_statement "ppppppiVar25 = pppppppiVar27[6];" (assignment_expression "ppppppiVar25 = pppppppiVar27[6]" identifier = (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ])) ;) (expression_statement "pppppppiStack_188 = (int *******)0x0;" (assignment_expression "pppppppiStack_188 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iStack_190 = 0;" (assignment_expression "iStack_190 = 0" identifier = number_literal) ;) (while_statement "while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }" while (parenthesized_expression "(pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1)" ( (comma_expression "pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1" (assignment_expression "pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)" identifier = (pointer_expression "*(int ********)((int)ppppppiVar25 + iStack_190 + 8)" * (cast_expression "(int ********)((int)ppppppiVar25 + iStack_190 + 8)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 8)" ( (binary_expression "(int)ppppppiVar25 + iStack_190 + 8" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) , (binary_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1" (pointer_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4)" * (cast_expression "(int *)((int)ppppppiVar25 + iStack_190 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 4)" ( (binary_expression "(int)ppppppiVar25 + iStack_190 + 4" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) < number_literal)) )) (compound_statement "{\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }" { (labeled_statement "LAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);" statement_identifier : (expression_statement "pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);" (assignment_expression "pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_188 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_188 + 1)" ( (binary_expression "(int)pppppppiStack_188 + 1" (cast_expression "(int)pppppppiStack_188" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "iStack_190 = iStack_190 + 0xc;" (assignment_expression "iStack_190 = iStack_190 + 0xc" identifier = (binary_expression "iStack_190 + 0xc" identifier + number_literal)) ;) (if_statement "if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;" if (parenthesized_expression "(pppppppiVar29 <= pppppppiStack_188)" ( (binary_expression "pppppppiVar29 <= pppppppiStack_188" identifier <= identifier) )) (goto_statement "goto LAB_00052998;" goto statement_identifier ;)) })) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar18 = pppppppiVar20;" (assignment_expression "pppppppiVar18 = pppppppiVar20" identifier = identifier) ;) (while_statement "while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }" while (parenthesized_expression "(pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0)" ( (comma_expression "pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0" (assignment_expression "pppppppiVar29 = pppppppiStack_188" identifier = identifier) , (comma_expression "iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0" (assignment_expression "iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" identifier = (call_expression "(*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" (parenthesized_expression "(*(code *)(iVar7 + 0x3360))" ( (pointer_expression "*(code *)(iVar7 + 0x3360)" * (cast_expression "(code *)(iVar7 + 0x3360)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3360)" ( (binary_expression "iVar7 + 0x3360" identifier + number_literal) )))) )) (argument_list "(pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" ( (binary_expression "pppppppiVar27[7] + (int)*pppppppiVar18 * 3" (subscript_expression "pppppppiVar27[7]" identifier [ number_literal ]) + (binary_expression "(int)*pppppppiVar18 * 3" (cast_expression "(int)*pppppppiVar18" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar18" * identifier)) * number_literal)) , identifier )))) , (binary_expression "iVar13 != 0" identifier != number_literal))) )) (compound_statement "{\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }" { (expression_statement "ppppppiVar25 = pppppppiVar27[6];" (assignment_expression "ppppppiVar25 = pppppppiVar27[6]" identifier = (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ])) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar18 = pppppppiVar18 + 1;" (assignment_expression "pppppppiVar18 = pppppppiVar18 + 1" identifier = (binary_expression "pppppppiVar18 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }" if (parenthesized_expression "(*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23)" ( (binary_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23" (pointer_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4)" * (cast_expression "(int *)((int)ppppppiVar25 + iStack_190 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 4)" ( (binary_expression "(int)ppppppiVar25 + iStack_190 + 4" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) <= identifier) )) (compound_statement "{\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }" { (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00052974;" goto statement_identifier ;) })) })) (expression_statement "pppppppiVar18 = (int *******)0xc;" (assignment_expression "pppppppiVar18 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;" statement_identifier : (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (if_statement "if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }" if (parenthesized_expression "(((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0))" ( (binary_expression "((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)" (parenthesized_expression "((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0))" ( (binary_expression "(((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)" (parenthesized_expression "(((uint)pppppppiVar24[0x16] & 0x20000000) != 0)" ( (binary_expression "((uint)pppppppiVar24[0x16] & 0x20000000) != 0" (parenthesized_expression "((uint)pppppppiVar24[0x16] & 0x20000000)" ( (binary_expression "(uint)pppppppiVar24[0x16] & 0x20000000" (cast_expression "(uint)pppppppiVar24[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar24[0x16]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(pppppppiVar5[5] == (int ******)0x0)" ( (binary_expression "pppppppiVar5[5] == (int ******)0x0" (subscript_expression "pppppppiVar5[5]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }" { (expression_statement "pppppppiVar20 = (int *******)pppppppiVar24[2];" (assignment_expression "pppppppiVar20 = (int *******)pppppppiVar24[2]" identifier = (cast_expression "(int *******)pppppppiVar24[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar24[2]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" if (parenthesized_expression "(pppppppiVar20 != (int *******)0x0)" ( (binary_expression "pppppppiVar20 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" { (expression_statement "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);" (assignment_expression "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2fcc" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);" (assignment_expression "uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd)" identifier = (call_expression "(uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(byte *)(*pppppppiVar24 + 1) < 0xd)" ( (binary_expression "*(byte *)(*pppppppiVar24 + 1) < 0xd" (pointer_expression "*(byte *)(*pppppppiVar24 + 1)" * (cast_expression "(byte *)(*pppppppiVar24 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppiVar24 + 1)" ( (binary_expression "*pppppppiVar24 + 1" (pointer_expression "*pppppppiVar24" * identifier) + number_literal) )))) < number_literal) )))) ;) (if_statement "if (uVar28 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }" { comment comment (expression_statement "pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();" (assignment_expression "pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" identifier = (cast_expression "(int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" (parenthesized_expression "(*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))" ( (pointer_expression "*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97))" * (parenthesized_expression "(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97))" ( (binary_expression "pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" identifier + (cast_expression "(int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" ( (binary_expression "pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97" (subscript_expression "pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)]" identifier [ (pointer_expression "*(byte *)(*pppppppiVar24 + 1)" * (cast_expression "(byte *)(*pppppppiVar24 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppiVar24 + 1)" ( (binary_expression "*pppppppiVar24 + 1" (pointer_expression "*pppppppiVar24" * identifier) + number_literal) )))) ]) + number_literal) )))) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pppppppiVar27;" return identifier ;) })) (goto_statement "goto switchD_00052dc0_caseD_0;" goto statement_identifier ;) })) (expression_statement "pppppppiVar24[0x17] = (int ******)0x1;" (assignment_expression "pppppppiVar24[0x17] = (int ******)0x1" (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ]) = (cast_expression "(int ******)0x1" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0x9f" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) & number_literal) | (binary_expression "(0 < (int)pppppppiVar24[0x13]) << 6" (parenthesized_expression "(0 < (int)pppppppiVar24[0x13])" ( (binary_expression "0 < (int)pppppppiVar24[0x13]" number_literal < (cast_expression "(int)pppppppiVar24[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x13]" identifier [ number_literal ]))) )) << number_literal))) ;) })) (expression_statement "ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];" (assignment_expression "ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7]" identifier = (cast_expression "(int ******)pppppppiVar24[0xd][3][7]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppiVar24[0xd][3][7]" (subscript_expression "pppppppiVar24[0xd][3]" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppiVar24[0x12] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x12] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);" (assignment_expression "pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" identifier = (cast_expression "(int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" ( (binary_expression "pppppppiVar24[6] + (int)ppppppiVar25 * 3" (subscript_expression "pppppppiVar24[6]" identifier [ number_literal ]) + (binary_expression "(int)ppppppiVar25 * 3" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);" (assignment_expression "pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18)" identifier = (cast_expression "(int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000469e0(pppppppiVar19,pppppppiVar18)" identifier (argument_list "(pppppppiVar19,pppppppiVar18)" ( identifier , identifier ))))) ;) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" identifier = identifier) ;) (expression_statement "apppppppiStack_174[0] = pppppppiVar29;" (assignment_expression "apppppppiStack_174[0] = pppppppiVar29" (subscript_expression "apppppppiStack_174[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }" if (parenthesized_expression "(pppppppiVar29 == (int *******)0x0)" ( (binary_expression "pppppppiVar29 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }" { (if_statement "if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }" if (parenthesized_expression "((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168))" ( (binary_expression "(0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)" (parenthesized_expression "(0 < (int)pppppppiVar24[0x13])" ( (binary_expression "0 < (int)pppppppiVar24[0x13]" number_literal < (cast_expression "(int)pppppppiVar24[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x13]" identifier [ number_literal ]))) )) && (parenthesized_expression "(0 < iStack_168)" ( (binary_expression "0 < iStack_168" number_literal < identifier) ))) )) (compound_statement "{\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = iStack_168;" (assignment_expression "iVar7 = iStack_168" identifier = identifier) ;) (do_statement "do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);" do (compound_statement "{\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          }" { (expression_statement "ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;" (assignment_expression "ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2" identifier = (binary_expression "*pppppppiVar24 + piStack_164[iVar23] * 2" (pointer_expression "*pppppppiVar24" * identifier) + (binary_expression "piStack_164[iVar23] * 2" (subscript_expression "piStack_164[iVar23]" identifier [ identifier ]) * number_literal))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "piVar14 = piStack_164;" (assignment_expression "piVar14 = piStack_164" identifier = identifier) ;) (if_statement "if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" if (parenthesized_expression "(*(char *)(ppppppiVar25 + 1) == '\x04')" ( (binary_expression "*(char *)(ppppppiVar25 + 1) == '\x04'" (pointer_expression "*(char *)(ppppppiVar25 + 1)" * (cast_expression "(char *)(ppppppiVar25 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar25 + 1)" ( (binary_expression "ppppppiVar25 + 1" identifier + number_literal) )))) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }" { (while_statement "while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }" while (parenthesized_expression "((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)))" ( (parenthesized_expression "(ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))" ( (comma_expression "ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)" (assignment_expression "ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2" identifier = (binary_expression "*pppppppiVar24 + *piVar14 * 2" (pointer_expression "*pppppppiVar24" * identifier) + (binary_expression "*piVar14 * 2" (pointer_expression "*piVar14" * identifier) * number_literal))) , (binary_expression "*(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)" (binary_expression "*(char *)(ppppppiVar8 + 1) != '\t'" (pointer_expression "*(char *)(ppppppiVar8 + 1)" * (cast_expression "(char *)(ppppppiVar8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar8 + 1)" ( (binary_expression "ppppppiVar8 + 1" identifier + number_literal) )))) != (char_literal "'\t'" ' escape_sequence ')) || (parenthesized_expression "(*ppppppiVar8 != *ppppppiVar25)" ( (binary_expression "*ppppppiVar8 != *ppppppiVar25" (pointer_expression "*ppppppiVar8" * identifier) != (pointer_expression "*ppppppiVar25" * identifier)) )))) )) )) (compound_statement "{\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }" { (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == iVar13) goto LAB_00052a54;" if (parenthesized_expression "(iVar7 == iVar13)" ( (binary_expression "iVar7 == iVar13" identifier == identifier) )) (goto_statement "goto LAB_00052a54;" goto statement_identifier ;)) })) (expression_statement "pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];" (assignment_expression "pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" identifier = (cast_expression "(int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" * (subscript_expression "pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" (subscript_expression "pppppppiVar24[5]" identifier [ number_literal ]) [ (binary_expression "piStack_164[iVar23] * 3 + 2" (binary_expression "piStack_164[iVar23] * 3" (subscript_expression "piStack_164[iVar23]" identifier [ identifier ]) * number_literal) + number_literal) ])))) ;) (expression_statement "pppppppiVar27 = pppppppiVar20;" (assignment_expression "pppppppiVar27 = pppppppiVar20" identifier = identifier) ;) (expression_statement "iVar13 = FUN_00045230(iVar7,&piStack_164);" (assignment_expression "iVar13 = FUN_00045230(iVar7,&piStack_164)" identifier = (call_expression "FUN_00045230(iVar7,&piStack_164)" identifier (argument_list "(iVar7,&piStack_164)" ( identifier , (pointer_expression "&piStack_164" & identifier) )))) ;) (if_statement "if (iVar13 != 0) goto LAB_00052a54;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00052a54;" goto statement_identifier ;)) (expression_statement "pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);" (assignment_expression "pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" identifier = (cast_expression "(int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" ( (binary_expression "pppppppiVar24[6] + (int)pppppppiVar27 * 3" (subscript_expression "pppppppiVar24[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppiVar27 * 3" (cast_expression "(int)pppppppiVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;" (assignment_expression "pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)" identifier = (cast_expression "(int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000459ac(pppppppiVar19,pppppppiVar18)" identifier (argument_list "(pppppppiVar19,pppppppiVar18)" ( identifier , identifier ))))) ;) (if_statement "if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;" if (parenthesized_expression "(pppppppiVar27 != (int *******)0x0)" ( (binary_expression "pppppppiVar27 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00052abc;" goto statement_identifier ;)) (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = iStack_168;" (assignment_expression "iVar7 = iStack_168" identifier = identifier) ;) }) (else_clause "else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" else (compound_statement "{\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" { (labeled_statement "LAB_00052a54:\n                              iVar23 = iVar23 + 1;" statement_identifier : (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;)) }))) }) while (parenthesized_expression "(iVar23 < iVar7)" ( (binary_expression "iVar23 < iVar7" identifier < identifier) )) ;) })) (expression_statement "pppppppiVar18 = pppppppiVar24;" (assignment_expression "pppppppiVar18 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );" (assignment_expression "ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" identifier = (cast_expression "(int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[9] = ppppppiVar25;" (assignment_expression "pppppppiVar24[9] = ppppppiVar25" (subscript_expression "pppppppiVar24[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar27 = apppppppiStack_174[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_174[0]" identifier = (subscript_expression "apppppppiStack_174[0]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }" { (if_statement "if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" if (parenthesized_expression "(((uint)ppppppiVar25[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)ppppppiVar25[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)ppppppiVar25[0xd] & 0x1000000)" ( (binary_expression "(uint)ppppppiVar25[0xd] & 0x1000000" (cast_expression "(uint)ppppppiVar25[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar25[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }" { (expression_statement "pppppppiVar24[0xc] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xc] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar24[0xb] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xb] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar24[10] = ppppppiVar25;" (assignment_expression "pppppppiVar24[10] = ppppppiVar25" (subscript_expression "pppppppiVar24[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar19 = pppppppiVar20;" (assignment_expression "pppppppiVar19 = pppppppiVar20" identifier = identifier) ;) }) (else_clause "else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" else (compound_statement "{\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" { (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" identifier = (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[10] = ppppppiVar25;" (assignment_expression "pppppppiVar24[10] = ppppppiVar25" (subscript_expression "pppppppiVar24[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" identifier = (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[0xb] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xb] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar18 = pppppppiVar24;" (assignment_expression "pppppppiVar18 = pppppppiVar24" identifier = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" identifier = (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[0xc] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xc] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar27 = apppppppiStack_174[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_174[0]" identifier = (subscript_expression "apppppppiStack_174[0]" identifier [ number_literal ])) ;) (if_statement "if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;" if (parenthesized_expression "(((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0))" ( (binary_expression "((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)" (parenthesized_expression "((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0))" ( (binary_expression "(pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)" (parenthesized_expression "(pppppppiVar24[10] == (int ******)0x0)" ( (binary_expression "pppppppiVar24[10] == (int ******)0x0" (subscript_expression "pppppppiVar24[10]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppiVar24[0xb] == (int ******)0x0)" ( (binary_expression "pppppppiVar24[0xb] == (int ******)0x0" (subscript_expression "pppppppiVar24[0xb]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) || (parenthesized_expression "(pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)" ( (comma_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) , (binary_expression "ppppppiVar25 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00052abc;" goto statement_identifier ;)) }))) (expression_statement "(*pcVar32)(piStack_164);" (call_expression "(*pcVar32)(piStack_164)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(piStack_164)" ( identifier ))) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" identifier = identifier) ;) })) })) (labeled_statement "LAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;" statement_identifier : (expression_statement "ppppppiVar25 = *pppppppiVar5;" (assignment_expression "ppppppiVar25 = *pppppppiVar5" identifier = (pointer_expression "*pppppppiVar5" * identifier)) ;)) (expression_statement "pppppiVar17 = ppppppiVar25[0xe];" (assignment_expression "pppppiVar17 = ppppppiVar25[0xe]" identifier = (subscript_expression "ppppppiVar25[0xe]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (expression_statement "pppppppiStack_178 = pppppppiVar27;" (assignment_expression "pppppppiStack_178 = pppppppiVar27" identifier = identifier) ;) (if_statement "if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }" if (parenthesized_expression "(pppppiVar17 != (int *****)0x0)" ( (binary_expression "pppppiVar17 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }" { (do_statement "do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);" do (compound_statement "{\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        }" { (expression_statement "pppppiVar17 = (int *****)*pppppiVar17;" (assignment_expression "pppppiVar17 = (int *****)*pppppiVar17" identifier = (cast_expression "(int *****)*pppppiVar17" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppiVar17" * identifier))) ;) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(pppppiVar17 != (int *****)0x0)" ( (binary_expression "pppppiVar17 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) })) (expression_statement "ppppppiVar25[0x10] = (int *****)0x1f;" (assignment_expression "ppppppiVar25[0x10] = (int *****)0x1f" (subscript_expression "ppppppiVar25[0x10]" identifier [ number_literal ]) = (cast_expression "(int *****)0x1f" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar25[0xe] = (int *****)0x0;" (assignment_expression "ppppppiVar25[0xe] = (int *****)0x0" (subscript_expression "ppppppiVar25[0xe]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar25[0xd] = (int *****)0x0;" (assignment_expression "ppppppiVar25[0xd] = (int *****)0x0" (subscript_expression "ppppppiVar25[0xd]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "(*pcVar32)(ppppppiVar25[4]);" (call_expression "(*pcVar32)(ppppppiVar25[4])" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(ppppppiVar25[4])" ( (subscript_expression "ppppppiVar25[4]" identifier [ number_literal ]) ))) ;) (expression_statement "ppppppiVar25[4] = (int *****)0x0;" (assignment_expression "ppppppiVar25[4] = (int *****)0x0" (subscript_expression "ppppppiVar25[4]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "FUN_00044d40(&pppppppiStack_160);" (call_expression "FUN_00044d40(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar27 = pppppppiStack_178;" (assignment_expression "pppppppiVar27 = pppppppiStack_178" identifier = identifier) ;) (if_statement "if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;" if (parenthesized_expression "(pppppppiStack_178 != (int *******)0x0)" ( (binary_expression "pppppppiStack_178 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto joined_r0x00052b2c;" goto statement_identifier ;)) (goto_statement "goto LAB_000526ec;" goto statement_identifier ;) })) (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (goto_statement "goto LAB_00052c64;" goto statement_identifier ;) })) (goto_statement "goto LAB_000525f4;" goto statement_identifier ;) })) })) })) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) (labeled_statement "LAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;" statement_identifier : (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (goto_statement "goto LAB_000521dc;" goto statement_identifier ;) })) (expression_statement "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier (argument_list "(&pppppppiStack_160,pppppppiVar29)" ( (pointer_expression "&pppppppiStack_160" & identifier) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }" { (expression_statement "pppppppiVar18 = (int *******)(uint)bStack_115;" (assignment_expression "pppppppiVar18 = (int *******)(uint)bStack_115" identifier = (cast_expression "(int *******)(uint)bStack_115" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_115" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "ppppppiVar25 = pppppppiVar24[0x17];" (assignment_expression "ppppppiVar25 = pppppppiVar24[0x17]" identifier = (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar4 = pppppppiVar29;" (assignment_expression "pppppppiVar4 = pppppppiVar29" identifier = identifier) ;) (goto_statement "goto LAB_00052158;" goto statement_identifier ;) })) (labeled_statement "LAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;" statement_identifier : (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;)) (expression_statement "pppppppiStack_178 = pppppppiVar18;" (assignment_expression "pppppppiStack_178 = pppppppiVar18" identifier = identifier) ;) (labeled_statement "LAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];" statement_identifier : (expression_statement "ppppppiVar25 = pppppppiVar27[0xe];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0xe]" identifier = (subscript_expression "pppppppiVar27[0xe]" identifier [ number_literal ])) ;)) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }" { (do_statement "do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);" do (compound_statement "{\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        }" { (expression_statement "ppppppiVar25 = (int ******)*ppppppiVar25;" (assignment_expression "ppppppiVar25 = (int ******)*ppppppiVar25" identifier = (cast_expression "(int ******)*ppppppiVar25" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppiVar25" * identifier))) ;) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) })) (expression_statement "pppppppiVar27[0x10] = (int ******)0x1f;" (assignment_expression "pppppppiVar27[0x10] = (int ******)0x1f" (subscript_expression "pppppppiVar27[0x10]" identifier [ number_literal ]) = (cast_expression "(int ******)0x1f" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27[0xe] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0xe] = (int ******)0x0" (subscript_expression "pppppppiVar27[0xe]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "(*pcVar32)(pppppppiVar27[4]);" (call_expression "(*pcVar32)(pppppppiVar27[4])" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppppiVar27[4])" ( (subscript_expression "pppppppiVar27[4]" identifier [ number_literal ]) ))) ;) (expression_statement "pppppppiVar27[4] = (int ******)0x0;" (assignment_expression "pppppppiVar27[4] = (int ******)0x0" (subscript_expression "pppppppiVar27[4]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "FUN_00044d40(&pppppppiStack_160);" (call_expression "FUN_00044d40(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar18 = pppppppiVar29;" (assignment_expression "pppppppiVar18 = pppppppiVar29" identifier = identifier) ;) (labeled_statement "joined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" statement_identifier : (if_statement "if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" { (expression_statement "(**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);" (call_expression "(**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23d08)" * (pointer_expression "*(code **)(pcVar6 + 0x23d08)" * (cast_expression "(code **)(pcVar6 + 0x23d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23d08)" ( (binary_expression "pcVar6 + 0x23d08" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar24 + 0x22)" ( (binary_expression "pppppppiVar24 + 0x22" identifier + number_literal) ))) ;) }))) }) (else_clause "else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" else (compound_statement "{\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" { (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);" (assignment_expression "iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cb0))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cb0)" * (pointer_expression "*(code **)(pcVar6 + 0x23cb0)" * (cast_expression "(code **)(pcVar6 + 0x23cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cb0)" ( (binary_expression "pcVar6 + 0x23cb0" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar24 + 0x22,0)" ( (binary_expression "pppppppiVar24 + 0x22" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar7 != 0) goto LAB_000526c8;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (if_statement "if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;" if (parenthesized_expression "(pppppppiStack_178 == (int *******)0x0)" ( (binary_expression "pppppppiStack_178 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000520dc;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" else (compound_statement "{\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" { (labeled_statement "LAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;" statement_identifier : (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (expression_statement "FUN_000499a0(pppppppiVar24);" (call_expression "FUN_000499a0(pppppppiVar24)" identifier (argument_list "(pppppppiVar24)" ( identifier ))) ;) (expression_statement "*pppppppiVar5 = (int ******)0x0;" (assignment_expression "*pppppppiVar5 = (int ******)0x0" (pointer_expression "*pppppppiVar5" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar5[1] = (int ******)0x0;" (assignment_expression "pppppppiVar5[1] = (int ******)0x0" (subscript_expression "pppppppiVar5[1]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27 = pppppppiStack_178;" (assignment_expression "pppppppiVar27 = pppppppiStack_178" identifier = identifier) ;) (labeled_statement "LAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }" statement_identifier : (if_statement "if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }" if (parenthesized_expression "(uStack_10c == *puVar31)" ( (binary_expression "uStack_10c == *puVar31" identifier == (pointer_expression "*puVar31" * identifier)) )) (compound_statement "{\n    return pppppppiVar27;\n  }" { (return_statement "return pppppppiVar27;" return identifier ;) }))) (expression_statement "uVar28 = uStack_10c;" (assignment_expression "uVar28 = uStack_10c" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar6 + 0x23c84))();" (call_expression "(**(code **)(pcVar6 + 0x23c84))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c84))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c84)" * (pointer_expression "*(code **)(pcVar6 + 0x23c84)" * (cast_expression "(code **)(pcVar6 + 0x23c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c84)" ( (binary_expression "pcVar6 + 0x23c84" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "switchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);" statement_identifier : (expression_statement "pcVar6 = *(code **)(pcVar6 + 0x23adc);" (assignment_expression "pcVar6 = *(code **)(pcVar6 + 0x23adc)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23adc)" * (cast_expression "(code **)(pcVar6 + 0x23adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23adc)" ( (binary_expression "pcVar6 + 0x23adc" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)(pppppppiVar20 + 7)" * (cast_expression "(byte *)(pppppppiVar20 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 7)" ( (binary_expression "pppppppiVar20 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1" (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6" (pointer_expression "*(byte *)(pppppppiVar20 + 7)" * (cast_expression "(byte *)(pppppppiVar20 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 7)" ( (binary_expression "pppppppiVar20 + 7" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" ( (binary_expression "((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3" (parenthesized_expression "((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f)" ( (binary_expression "(uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f" (call_expression "(uint)(**(int **)(pcVar6 + 0x22a58) << 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(pcVar6 + 0x22a58) << 6)" ( (binary_expression "**(int **)(pcVar6 + 0x22a58) << 6" (pointer_expression "**(int **)(pcVar6 + 0x22a58)" * (pointer_expression "*(int **)(pcVar6 + 0x22a58)" * (cast_expression "(int **)(pcVar6 + 0x22a58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x22a58)" ( (binary_expression "pcVar6 + 0x22a58" identifier + number_literal) ))))) << number_literal) ))) >> number_literal) )) << number_literal) )))) | number_literal)) ;) (expression_statement "iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);" (assignment_expression "iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18)" identifier = (call_expression "FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18)" identifier (argument_list "(pppppppiVar20,uVar28,pppppppiVar18)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n    return (int *******)0x0;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *******)0x0;\n  }" { (return_statement "return (int *******)0x0;" return (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal) ;) })) comment comment (expression_statement "pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);" (assignment_expression "pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" identifier = (cast_expression "(int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x22c8c))" ( (pointer_expression "**(code **)(pcVar6 + 0x22c8c)" * (pointer_expression "*(code **)(pcVar6 + 0x22c8c)" * (cast_expression "(code **)(pcVar6 + 0x22c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x22c8c)" ( (binary_expression "pcVar6 + 0x22c8c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" ( number_literal , (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8" (pointer_expression "*(int *)(pcVar6 + 0x22694)" * (cast_expression "(int *)(pcVar6 + 0x22694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x22694)" ( (binary_expression "pcVar6 + 0x22694" identifier + number_literal) )))) + number_literal) + (pointer_expression "*(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" * (cast_expression "(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" ( (binary_expression "iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084" (binary_expression "iVar10 * 4 + *(int *)(pcVar6 + 0x22694)" (binary_expression "iVar10 * 4" identifier * number_literal) + (pointer_expression "*(int *)(pcVar6 + 0x22694)" * (cast_expression "(int *)(pcVar6 + 0x22694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x22694)" ( (binary_expression "pcVar6 + 0x22694" identifier + number_literal) ))))) + number_literal) ))))) , number_literal ))))) ;) (return_statement "return pppppppiVar27;" return identifier ;) (labeled_statement "LAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" statement_identifier : (while_statement "while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" { (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (pppppppiVar27[6][1] != (int *****)0x0) break;" if (parenthesized_expression "(pppppppiVar27[6][1] != (int *****)0x0)" ( (binary_expression "pppppppiVar27[6][1] != (int *****)0x0" (subscript_expression "pppppppiVar27[6][1]" (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ]) [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00052650:\n    pppppppiVar29 = pppppppiVar27;" statement_identifier : (expression_statement "pppppppiVar29 = pppppppiVar27;" (assignment_expression "pppppppiVar29 = pppppppiVar27" identifier = identifier) ;)) (expression_statement "pppppppiVar20 = pppppppiVar22;" (assignment_expression "pppppppiVar20 = pppppppiVar22" identifier = identifier) ;) (expression_statement "pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);" (assignment_expression "pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" identifier = (cast_expression "(int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" (parenthesized_expression "(*(code *)(iVar7 + 0x5bf8))" ( (pointer_expression "*(code *)(iVar7 + 0x5bf8)" * (cast_expression "(code *)(iVar7 + 0x5bf8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5bf8)" ( (binary_expression "iVar7 + 0x5bf8" identifier + number_literal) )))) )) (argument_list "(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;)) (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar22 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar22 + 1)" ( (binary_expression "(int)pppppppiVar22 + 1" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }" if (parenthesized_expression "(*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0)" ( (binary_expression "*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0" (pointer_expression "*(int *)((int)pppppppiVar27[6] + iVar23 + 4)" * (cast_expression "(int *)((int)pppppppiVar27[6] + iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar27[6] + iVar23 + 4)" ( (binary_expression "(int)pppppppiVar27[6] + iVar23 + 4" (binary_expression "(int)pppppppiVar27[6] + iVar23" (cast_expression "(int)pppppppiVar27[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ])) + identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }" { (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_000525ec;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(piStack_164);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(piStack_164)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "(piStack_164)" ( identifier ))) ;) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" if (parenthesized_expression "(pppppppiVar18 != pppppppiVar22)" ( (binary_expression "pppppppiVar18 != pppppppiVar22" identifier != identifier) )) (compound_statement "{\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000525f4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00052614;" goto statement_identifier ;) })))
(translation_unit "bin_tree_t *\nparse_branch(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n            reg_errcode_t *err)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  re_string_t *regexp_00;\n  anon_union_4_5_a39f51ca_for_opr aVar3;\n  regex_t *prVar4;\n  re_token_t *prVar5;\n  code *pcVar6;\n  byte bVar23;\n  int iVar7;\n  anon_union_4_5_a39f51ca_for_opr aVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  bin_tree_t *pbVar12;\n  re_state_table_entry *prVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  re_bitset_ptr_t pbVar16;\n  re_node_set *prVar17;\n  uint uVar18;\n  bin_tree_storage_t *pbVar19;\n  re_dfastate_t *prVar20;\n  Idx IVar21;\n  reg_errcode_t rVar22;\n  int *piVar24;\n  bitset_word_t bVar25;\n  uint uVar26;\n  int *piVar27;\n  re_context_type rVar28;\n  bin_tree_t *pbVar29;\n  uint *puVar30;\n  re_charset_t *prVar31;\n  char *pattern;\n  regex_t *preg_00;\n  anon_union_4_5_a39f51ca_for_opr aVar32;\n  bin_tree_storage_t *pbVar33;\n  bin_tree_t *pbVar34;\n  anon_union_4_5_a39f51ca_for_opr aVar35;\n  uint uVar36;\n  anon_union_4_5_a39f51ca_for_opr aVar37;\n  bin_tree_t *pbVar38;\n  reg_syntax_t syntax_00;\n  anon_union_4_5_a39f51ca_for_opr aVar39;\n  re_dfa_t *prVar40;\n  uchar *puVar41;\n  re_context_type rVar42;\n  anon_union_4_5_a39f51ca_for_opr aVar43;\n  anon_union_4_5_a39f51ca_for_opr aVar44;\n  undefined *puVar45;\n  uint *puVar46;\n  code *pcVar47;\n  int iStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_188;\n  bin_tree_t *pbStack_178;\n  bin_tree_t *apbStack_174 [2];\n  undefined1 auStack_16c [4];\n  bin_tree_t *pbStack_168;\n  bin_tree_t *pbStack_164;\n  re_string_t rStack_160;\n  char *pcStack_10c;\n  anon_union_4_5_a39f51ca_for_opr aStack_108;\n  re_string_t *prStack_104;\n  re_dfa_t *prStack_100;\n  anon_union_4_5_a39f51ca_for_opr aStack_fc;\n  bin_tree_t *pbStack_f8;\n  anon_union_4_5_a39f51ca_for_opr aStack_f4;\n  int *piStack_f0;\n  pthread_mutex_t pStack_ec;\n  re_token_t t;\n  \n  puVar45 = PTR___stack_chk_guard_00075be8;\n  regexp_00 = *(re_string_t **)PTR___stack_chk_guard_00075be8;\n  aVar43 = (anon_union_4_5_a39f51ca_for_opr)preg->buffer;\n  preg_00 = preg;\n  aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n  aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n  aVar44.idx = nest;\n  pbVar38 = (bin_tree_t *)err;\n  aVar3.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n  if ((*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)) {\n    prVar4 = (regex_t *)(aVar43.idx + 0x40);\n    prVar5 = (re_token_t *)(aVar43.idx + 0x38);\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar23 = token->field_0x4;\n    aVar37 = aVar3;\n    if ((bVar23 & 0xf7) != 2) {\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    aVar3.sbcset = (re_bitset_ptr_t)0x0;\n  }\n  if (regexp_00 == *(re_string_t **)puVar45) {\n    return (bin_tree_t *)aVar3.sbcset;\n  }\n  puVar45 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar24 = *(int **)(puVar45 + 0x23eec);\n  iVar7 = *(int *)(puVar45 + 0x23c7c);\n  prVar40 = preg_00->buffer;\n  aVar8.sbcset = (re_bitset_ptr_t)*piVar24;\n  bVar25 = prVar40->completed_bkref_map;\n  prVar4 = preg_00;\n  aVar3 = aVar35;\n  aVar37 = aVar32;\n  pStack_ec.__data.__count =\n       (uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38);\n  if (pbVar38->parent == (bin_tree_t *)0x0) {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\nLAB_00051d9c:\n    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;\n    iVar10 = *(int *)(puVar45 + 0x23c24);\n    do {\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);\n    pbVar38->parent = (bin_tree_t *)0xc;\n    aVar3 = aVar39;\n  }\n  else {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\n    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;\n    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n  }\nLAB_00051eb8:\n  if ((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24) {\n    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;\n  }\n  pcVar6 = *(code **)(puVar45 + 0x23eac);\n  pcVar47 = re_compile_internal;\n  (*pcVar6)();\n  bVar23 = *(byte *)&(aVar8.mbcset)->nequiv_classes;\n  pbVar12 = ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent;\n  (aVar8.mbcset)->char_classes = (wctype_t *)aVar37;\n  (aVar8.mbcset)->range_ends = (wchar_t *)0x0;\n  (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n  puVar46 = *(uint **)(pcVar6 + 0x23cc4);\n  aVar39.mbcset = (re_charset_t *)(aVar8.mbcset)->mbchars;\n  pbStack_178 = (bin_tree_t *)0x0;\n  *(byte *)&(aVar8.mbcset)->nequiv_classes = bVar23 & 9;\n  pcStack_10c = (char *)*puVar46;\n  aStack_108 = aVar35;\n  prStack_104 = regexp_00;\n  prStack_100 = prVar40;\n  aStack_fc = aVar32;\n  pbStack_f8 = pbVar38;\n  aStack_f4 = aVar44;\n  piStack_f0 = (int *)syntax;\n  pStack_ec.__data.__lock = (int)aVar43;\n  pStack_ec.__data.__owner = (int)pcVar47;\n  if (pbVar12 < (bin_tree_t *)0xa0) {\n    aVar32.idx = 0xa0;\n    aVar35 = aVar3;\n    aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);\n    if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }\n    (aVar8.mbcset)->mbchars = (wchar_t *)aVar39;\n    ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;\n  }\n  pcVar47 = *(code **)(pcVar6 + 0x23bb0);\n  aVar35.idx = 0xa0;\n  aVar32.sbcset = (re_bitset_ptr_t)0x0;\n  (aVar8.mbcset)->range_ends = (wchar_t *)0xa0;\n  (*pcVar47)(aVar39.sbcset);\n  *(int *)(aVar39.idx + 0x40) = 0x1f;\n  if ((uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa) {\n    aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);\n    pcVar47 = *(code **)(pcVar6 + 0x23c08);\n    ((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;\n    bVar25 = (*pcVar47)(aVar44.idx * 8);\n    *aVar39.sbcset = bVar25;\n    if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }\n    else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }\n    prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);\n    ((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;\n    pcVar47 = *(code **)(pcVar6 + 0x23c44);\n    (aVar39.mbcset)->nranges = (Idx)prVar13;\n    iVar7 = (*pcVar47)();\n    pcVar47 = *(code **)(pcVar6 + 0x23b44);\n    *(int *)(aVar39.idx + 0x5c) = iVar7;\n    pbVar14 = (byte *)(*pcVar47)(0xe);\n    aVar32.idx = (Idx)&DAT_00000055;\n    if ((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }\n    bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n    iVar7 = *(int *)(aVar39.idx + 0x5c);\n    (((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;\n    if (iVar7 < 2) {\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }\n    else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }\n    if ((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_000526c8;\n    pbStack_178 = (bin_tree_t *)0x0;\n    if (iVar7 == 0) {\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }\n    else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;\n  }\n  free_dfa_content((re_dfa_t *)aVar39.mbcset);\n  *aVar8.sbcset = 0;\n  ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0x0;\n  pbVar38 = pbStack_178;\nLAB_000526ec:\n  if (pcStack_10c == (char *)*puVar46) {\n    return pbVar38;\n  }\n  pattern = pcStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  syntax_00 = **(reg_syntax_t **)(pcVar6 + 0x22a58);\n  *(byte *)&(aVar35.mbcset)->nequiv_classes =\n       *(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |\n       1;\n  rVar22 = re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00);\n  if (rVar22 == _REG_NOERROR) {\n    return (bin_tree_t *)0x0;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pbVar38 = (bin_tree_t *)\n            (**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pbVar38;\nLAB_00052628:\n  while( true ) {\n    aVar43.sbcset = (re_bitset_ptr_t)0x0;\n    iVar10 = 0;\n    bVar1 = false;\n    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;\nLAB_00052650:\n    aVar44.idx = aVar32.idx;\n    aVar35 = aVar43;\n    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);\n    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;\n    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);\n    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}\n\n" (function_definition "bin_tree_t *\nparse_branch(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n            reg_errcode_t *err)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  re_string_t *regexp_00;\n  anon_union_4_5_a39f51ca_for_opr aVar3;\n  regex_t *prVar4;\n  re_token_t *prVar5;\n  code *pcVar6;\n  byte bVar23;\n  int iVar7;\n  anon_union_4_5_a39f51ca_for_opr aVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  bin_tree_t *pbVar12;\n  re_state_table_entry *prVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  re_bitset_ptr_t pbVar16;\n  re_node_set *prVar17;\n  uint uVar18;\n  bin_tree_storage_t *pbVar19;\n  re_dfastate_t *prVar20;\n  Idx IVar21;\n  reg_errcode_t rVar22;\n  int *piVar24;\n  bitset_word_t bVar25;\n  uint uVar26;\n  int *piVar27;\n  re_context_type rVar28;\n  bin_tree_t *pbVar29;\n  uint *puVar30;\n  re_charset_t *prVar31;\n  char *pattern;\n  regex_t *preg_00;\n  anon_union_4_5_a39f51ca_for_opr aVar32;\n  bin_tree_storage_t *pbVar33;\n  bin_tree_t *pbVar34;\n  anon_union_4_5_a39f51ca_for_opr aVar35;\n  uint uVar36;\n  anon_union_4_5_a39f51ca_for_opr aVar37;\n  bin_tree_t *pbVar38;\n  reg_syntax_t syntax_00;\n  anon_union_4_5_a39f51ca_for_opr aVar39;\n  re_dfa_t *prVar40;\n  uchar *puVar41;\n  re_context_type rVar42;\n  anon_union_4_5_a39f51ca_for_opr aVar43;\n  anon_union_4_5_a39f51ca_for_opr aVar44;\n  undefined *puVar45;\n  uint *puVar46;\n  code *pcVar47;\n  int iStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_188;\n  bin_tree_t *pbStack_178;\n  bin_tree_t *apbStack_174 [2];\n  undefined1 auStack_16c [4];\n  bin_tree_t *pbStack_168;\n  bin_tree_t *pbStack_164;\n  re_string_t rStack_160;\n  char *pcStack_10c;\n  anon_union_4_5_a39f51ca_for_opr aStack_108;\n  re_string_t *prStack_104;\n  re_dfa_t *prStack_100;\n  anon_union_4_5_a39f51ca_for_opr aStack_fc;\n  bin_tree_t *pbStack_f8;\n  anon_union_4_5_a39f51ca_for_opr aStack_f4;\n  int *piStack_f0;\n  pthread_mutex_t pStack_ec;\n  re_token_t t;\n  \n  puVar45 = PTR___stack_chk_guard_00075be8;\n  regexp_00 = *(re_string_t **)PTR___stack_chk_guard_00075be8;\n  aVar43 = (anon_union_4_5_a39f51ca_for_opr)preg->buffer;\n  preg_00 = preg;\n  aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n  aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n  aVar44.idx = nest;\n  pbVar38 = (bin_tree_t *)err;\n  aVar3.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n  if ((*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)) {\n    prVar4 = (regex_t *)(aVar43.idx + 0x40);\n    prVar5 = (re_token_t *)(aVar43.idx + 0x38);\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar23 = token->field_0x4;\n    aVar37 = aVar3;\n    if ((bVar23 & 0xf7) != 2) {\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    aVar3.sbcset = (re_bitset_ptr_t)0x0;\n  }\n  if (regexp_00 == *(re_string_t **)puVar45) {\n    return (bin_tree_t *)aVar3.sbcset;\n  }\n  puVar45 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar24 = *(int **)(puVar45 + 0x23eec);\n  iVar7 = *(int *)(puVar45 + 0x23c7c);\n  prVar40 = preg_00->buffer;\n  aVar8.sbcset = (re_bitset_ptr_t)*piVar24;\n  bVar25 = prVar40->completed_bkref_map;\n  prVar4 = preg_00;\n  aVar3 = aVar35;\n  aVar37 = aVar32;\n  pStack_ec.__data.__count =\n       (uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38);\n  if (pbVar38->parent == (bin_tree_t *)0x0) {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\nLAB_00051d9c:\n    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;\n    iVar10 = *(int *)(puVar45 + 0x23c24);\n    do {\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);\n    pbVar38->parent = (bin_tree_t *)0xc;\n    aVar3 = aVar39;\n  }\n  else {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\n    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;\n    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n  }\nLAB_00051eb8:\n  if ((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24) {\n    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;\n  }\n  pcVar6 = *(code **)(puVar45 + 0x23eac);\n  pcVar47 = re_compile_internal;\n  (*pcVar6)();\n  bVar23 = *(byte *)&(aVar8.mbcset)->nequiv_classes;\n  pbVar12 = ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent;\n  (aVar8.mbcset)->char_classes = (wctype_t *)aVar37;\n  (aVar8.mbcset)->range_ends = (wchar_t *)0x0;\n  (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n  puVar46 = *(uint **)(pcVar6 + 0x23cc4);\n  aVar39.mbcset = (re_charset_t *)(aVar8.mbcset)->mbchars;\n  pbStack_178 = (bin_tree_t *)0x0;\n  *(byte *)&(aVar8.mbcset)->nequiv_classes = bVar23 & 9;\n  pcStack_10c = (char *)*puVar46;\n  aStack_108 = aVar35;\n  prStack_104 = regexp_00;\n  prStack_100 = prVar40;\n  aStack_fc = aVar32;\n  pbStack_f8 = pbVar38;\n  aStack_f4 = aVar44;\n  piStack_f0 = (int *)syntax;\n  pStack_ec.__data.__lock = (int)aVar43;\n  pStack_ec.__data.__owner = (int)pcVar47;\n  if (pbVar12 < (bin_tree_t *)0xa0) {\n    aVar32.idx = 0xa0;\n    aVar35 = aVar3;\n    aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);\n    if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }\n    (aVar8.mbcset)->mbchars = (wchar_t *)aVar39;\n    ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;\n  }\n  pcVar47 = *(code **)(pcVar6 + 0x23bb0);\n  aVar35.idx = 0xa0;\n  aVar32.sbcset = (re_bitset_ptr_t)0x0;\n  (aVar8.mbcset)->range_ends = (wchar_t *)0xa0;\n  (*pcVar47)(aVar39.sbcset);\n  *(int *)(aVar39.idx + 0x40) = 0x1f;\n  if ((uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa) {\n    aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);\n    pcVar47 = *(code **)(pcVar6 + 0x23c08);\n    ((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;\n    bVar25 = (*pcVar47)(aVar44.idx * 8);\n    *aVar39.sbcset = bVar25;\n    if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }\n    else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }\n    prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);\n    ((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;\n    pcVar47 = *(code **)(pcVar6 + 0x23c44);\n    (aVar39.mbcset)->nranges = (Idx)prVar13;\n    iVar7 = (*pcVar47)();\n    pcVar47 = *(code **)(pcVar6 + 0x23b44);\n    *(int *)(aVar39.idx + 0x5c) = iVar7;\n    pbVar14 = (byte *)(*pcVar47)(0xe);\n    aVar32.idx = (Idx)&DAT_00000055;\n    if ((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }\n    bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n    iVar7 = *(int *)(aVar39.idx + 0x5c);\n    (((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;\n    if (iVar7 < 2) {\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }\n    else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }\n    if ((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_000526c8;\n    pbStack_178 = (bin_tree_t *)0x0;\n    if (iVar7 == 0) {\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }\n    else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;\n  }\n  free_dfa_content((re_dfa_t *)aVar39.mbcset);\n  *aVar8.sbcset = 0;\n  ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0x0;\n  pbVar38 = pbStack_178;\nLAB_000526ec:\n  if (pcStack_10c == (char *)*puVar46) {\n    return pbVar38;\n  }\n  pattern = pcStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  syntax_00 = **(reg_syntax_t **)(pcVar6 + 0x22a58);\n  *(byte *)&(aVar35.mbcset)->nequiv_classes =\n       *(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |\n       1;\n  rVar22 = re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00);\n  if (rVar22 == _REG_NOERROR) {\n    return (bin_tree_t *)0x0;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pbVar38 = (bin_tree_t *)\n            (**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pbVar38;\nLAB_00052628:\n  while( true ) {\n    aVar43.sbcset = (re_bitset_ptr_t)0x0;\n    iVar10 = 0;\n    bVar1 = false;\n    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;\nLAB_00052650:\n    aVar44.idx = aVar32.idx;\n    aVar35 = aVar43;\n    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);\n    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;\n    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);\n    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" type_identifier (pointer_declarator "*\nparse_branch(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n            reg_errcode_t *err)" * (function_declarator "parse_branch(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n            reg_errcode_t *err)" identifier (parameter_list "(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n            reg_errcode_t *err)" ( (parameter_declaration "re_string_t *regexp" type_identifier (pointer_declarator "*regexp" * identifier)) , (parameter_declaration "regex_t *preg" type_identifier (pointer_declarator "*preg" * identifier)) , (parameter_declaration "re_token_t *token" type_identifier (pointer_declarator "*token" * identifier)) , (parameter_declaration "reg_syntax_t syntax" type_identifier identifier) , (parameter_declaration "Idx nest" type_identifier identifier) , (parameter_declaration "reg_errcode_t *err" type_identifier (pointer_declarator "*err" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  re_string_t *regexp_00;\n  anon_union_4_5_a39f51ca_for_opr aVar3;\n  regex_t *prVar4;\n  re_token_t *prVar5;\n  code *pcVar6;\n  byte bVar23;\n  int iVar7;\n  anon_union_4_5_a39f51ca_for_opr aVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  bin_tree_t *pbVar12;\n  re_state_table_entry *prVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  re_bitset_ptr_t pbVar16;\n  re_node_set *prVar17;\n  uint uVar18;\n  bin_tree_storage_t *pbVar19;\n  re_dfastate_t *prVar20;\n  Idx IVar21;\n  reg_errcode_t rVar22;\n  int *piVar24;\n  bitset_word_t bVar25;\n  uint uVar26;\n  int *piVar27;\n  re_context_type rVar28;\n  bin_tree_t *pbVar29;\n  uint *puVar30;\n  re_charset_t *prVar31;\n  char *pattern;\n  regex_t *preg_00;\n  anon_union_4_5_a39f51ca_for_opr aVar32;\n  bin_tree_storage_t *pbVar33;\n  bin_tree_t *pbVar34;\n  anon_union_4_5_a39f51ca_for_opr aVar35;\n  uint uVar36;\n  anon_union_4_5_a39f51ca_for_opr aVar37;\n  bin_tree_t *pbVar38;\n  reg_syntax_t syntax_00;\n  anon_union_4_5_a39f51ca_for_opr aVar39;\n  re_dfa_t *prVar40;\n  uchar *puVar41;\n  re_context_type rVar42;\n  anon_union_4_5_a39f51ca_for_opr aVar43;\n  anon_union_4_5_a39f51ca_for_opr aVar44;\n  undefined *puVar45;\n  uint *puVar46;\n  code *pcVar47;\n  int iStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_188;\n  bin_tree_t *pbStack_178;\n  bin_tree_t *apbStack_174 [2];\n  undefined1 auStack_16c [4];\n  bin_tree_t *pbStack_168;\n  bin_tree_t *pbStack_164;\n  re_string_t rStack_160;\n  char *pcStack_10c;\n  anon_union_4_5_a39f51ca_for_opr aStack_108;\n  re_string_t *prStack_104;\n  re_dfa_t *prStack_100;\n  anon_union_4_5_a39f51ca_for_opr aStack_fc;\n  bin_tree_t *pbStack_f8;\n  anon_union_4_5_a39f51ca_for_opr aStack_f4;\n  int *piStack_f0;\n  pthread_mutex_t pStack_ec;\n  re_token_t t;\n  \n  puVar45 = PTR___stack_chk_guard_00075be8;\n  regexp_00 = *(re_string_t **)PTR___stack_chk_guard_00075be8;\n  aVar43 = (anon_union_4_5_a39f51ca_for_opr)preg->buffer;\n  preg_00 = preg;\n  aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n  aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n  aVar44.idx = nest;\n  pbVar38 = (bin_tree_t *)err;\n  aVar3.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n  if ((*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)) {\n    prVar4 = (regex_t *)(aVar43.idx + 0x40);\n    prVar5 = (re_token_t *)(aVar43.idx + 0x38);\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar23 = token->field_0x4;\n    aVar37 = aVar3;\n    if ((bVar23 & 0xf7) != 2) {\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    aVar3.sbcset = (re_bitset_ptr_t)0x0;\n  }\n  if (regexp_00 == *(re_string_t **)puVar45) {\n    return (bin_tree_t *)aVar3.sbcset;\n  }\n  puVar45 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar24 = *(int **)(puVar45 + 0x23eec);\n  iVar7 = *(int *)(puVar45 + 0x23c7c);\n  prVar40 = preg_00->buffer;\n  aVar8.sbcset = (re_bitset_ptr_t)*piVar24;\n  bVar25 = prVar40->completed_bkref_map;\n  prVar4 = preg_00;\n  aVar3 = aVar35;\n  aVar37 = aVar32;\n  pStack_ec.__data.__count =\n       (uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38);\n  if (pbVar38->parent == (bin_tree_t *)0x0) {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\nLAB_00051d9c:\n    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;\n    iVar10 = *(int *)(puVar45 + 0x23c24);\n    do {\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);\n    pbVar38->parent = (bin_tree_t *)0xc;\n    aVar3 = aVar39;\n  }\n  else {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\n    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;\n    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n  }\nLAB_00051eb8:\n  if ((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24) {\n    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;\n  }\n  pcVar6 = *(code **)(puVar45 + 0x23eac);\n  pcVar47 = re_compile_internal;\n  (*pcVar6)();\n  bVar23 = *(byte *)&(aVar8.mbcset)->nequiv_classes;\n  pbVar12 = ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent;\n  (aVar8.mbcset)->char_classes = (wctype_t *)aVar37;\n  (aVar8.mbcset)->range_ends = (wchar_t *)0x0;\n  (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n  puVar46 = *(uint **)(pcVar6 + 0x23cc4);\n  aVar39.mbcset = (re_charset_t *)(aVar8.mbcset)->mbchars;\n  pbStack_178 = (bin_tree_t *)0x0;\n  *(byte *)&(aVar8.mbcset)->nequiv_classes = bVar23 & 9;\n  pcStack_10c = (char *)*puVar46;\n  aStack_108 = aVar35;\n  prStack_104 = regexp_00;\n  prStack_100 = prVar40;\n  aStack_fc = aVar32;\n  pbStack_f8 = pbVar38;\n  aStack_f4 = aVar44;\n  piStack_f0 = (int *)syntax;\n  pStack_ec.__data.__lock = (int)aVar43;\n  pStack_ec.__data.__owner = (int)pcVar47;\n  if (pbVar12 < (bin_tree_t *)0xa0) {\n    aVar32.idx = 0xa0;\n    aVar35 = aVar3;\n    aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);\n    if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }\n    (aVar8.mbcset)->mbchars = (wchar_t *)aVar39;\n    ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;\n  }\n  pcVar47 = *(code **)(pcVar6 + 0x23bb0);\n  aVar35.idx = 0xa0;\n  aVar32.sbcset = (re_bitset_ptr_t)0x0;\n  (aVar8.mbcset)->range_ends = (wchar_t *)0xa0;\n  (*pcVar47)(aVar39.sbcset);\n  *(int *)(aVar39.idx + 0x40) = 0x1f;\n  if ((uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa) {\n    aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);\n    pcVar47 = *(code **)(pcVar6 + 0x23c08);\n    ((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;\n    bVar25 = (*pcVar47)(aVar44.idx * 8);\n    *aVar39.sbcset = bVar25;\n    if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }\n    else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }\n    prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);\n    ((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;\n    pcVar47 = *(code **)(pcVar6 + 0x23c44);\n    (aVar39.mbcset)->nranges = (Idx)prVar13;\n    iVar7 = (*pcVar47)();\n    pcVar47 = *(code **)(pcVar6 + 0x23b44);\n    *(int *)(aVar39.idx + 0x5c) = iVar7;\n    pbVar14 = (byte *)(*pcVar47)(0xe);\n    aVar32.idx = (Idx)&DAT_00000055;\n    if ((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }\n    bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n    iVar7 = *(int *)(aVar39.idx + 0x5c);\n    (((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;\n    if (iVar7 < 2) {\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }\n    else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }\n    if ((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_000526c8;\n    pbStack_178 = (bin_tree_t *)0x0;\n    if (iVar7 == 0) {\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }\n    else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;\n  }\n  free_dfa_content((re_dfa_t *)aVar39.mbcset);\n  *aVar8.sbcset = 0;\n  ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0x0;\n  pbVar38 = pbStack_178;\nLAB_000526ec:\n  if (pcStack_10c == (char *)*puVar46) {\n    return pbVar38;\n  }\n  pattern = pcStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  syntax_00 = **(reg_syntax_t **)(pcVar6 + 0x22a58);\n  *(byte *)&(aVar35.mbcset)->nequiv_classes =\n       *(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |\n       1;\n  rVar22 = re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00);\n  if (rVar22 == _REG_NOERROR) {\n    return (bin_tree_t *)0x0;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pbVar38 = (bin_tree_t *)\n            (**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pbVar38;\nLAB_00052628:\n  while( true ) {\n    aVar43.sbcset = (re_bitset_ptr_t)0x0;\n    iVar10 = 0;\n    bVar1 = false;\n    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;\nLAB_00052650:\n    aVar44.idx = aVar32.idx;\n    aVar35 = aVar43;\n    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);\n    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;\n    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);\n    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "re_string_t *regexp_00;" type_identifier (pointer_declarator "*regexp_00" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar3;" type_identifier identifier ;) (declaration "regex_t *prVar4;" type_identifier (pointer_declarator "*prVar4" * identifier) ;) (declaration "re_token_t *prVar5;" type_identifier (pointer_declarator "*prVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "bin_tree_t *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "re_state_table_entry *prVar13;" type_identifier (pointer_declarator "*prVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "re_bitset_ptr_t pbVar16;" type_identifier identifier ;) (declaration "re_node_set *prVar17;" type_identifier (pointer_declarator "*prVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "bin_tree_storage_t *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "re_dfastate_t *prVar20;" type_identifier (pointer_declarator "*prVar20" * identifier) ;) (declaration "Idx IVar21;" type_identifier identifier ;) (declaration "reg_errcode_t rVar22;" type_identifier identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "bitset_word_t bVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "re_context_type rVar28;" type_identifier identifier ;) (declaration "bin_tree_t *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "re_charset_t *prVar31;" type_identifier (pointer_declarator "*prVar31" * identifier) ;) (declaration "char *pattern;" primitive_type (pointer_declarator "*pattern" * identifier) ;) (declaration "regex_t *preg_00;" type_identifier (pointer_declarator "*preg_00" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar32;" type_identifier identifier ;) (declaration "bin_tree_storage_t *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "bin_tree_t *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar37;" type_identifier identifier ;) (declaration "bin_tree_t *pbVar38;" type_identifier (pointer_declarator "*pbVar38" * identifier) ;) (declaration "reg_syntax_t syntax_00;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar39;" type_identifier identifier ;) (declaration "re_dfa_t *prVar40;" type_identifier (pointer_declarator "*prVar40" * identifier) ;) (declaration "uchar *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "re_context_type rVar42;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar43;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar44;" type_identifier identifier ;) (declaration "undefined *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "uint *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "code *pcVar47;" type_identifier (pointer_declarator "*pcVar47" * identifier) ;) (declaration "int iStack_190;" primitive_type identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_188;" type_identifier identifier ;) (declaration "bin_tree_t *pbStack_178;" type_identifier (pointer_declarator "*pbStack_178" * identifier) ;) (declaration "bin_tree_t *apbStack_174 [2];" type_identifier (pointer_declarator "*apbStack_174 [2]" * (array_declarator "apbStack_174 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_16c [4];" type_identifier (array_declarator "auStack_16c [4]" identifier [ number_literal ]) ;) (declaration "bin_tree_t *pbStack_168;" type_identifier (pointer_declarator "*pbStack_168" * identifier) ;) (declaration "bin_tree_t *pbStack_164;" type_identifier (pointer_declarator "*pbStack_164" * identifier) ;) (declaration "re_string_t rStack_160;" type_identifier identifier ;) (declaration "char *pcStack_10c;" primitive_type (pointer_declarator "*pcStack_10c" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_108;" type_identifier identifier ;) (declaration "re_string_t *prStack_104;" type_identifier (pointer_declarator "*prStack_104" * identifier) ;) (declaration "re_dfa_t *prStack_100;" type_identifier (pointer_declarator "*prStack_100" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_fc;" type_identifier identifier ;) (declaration "bin_tree_t *pbStack_f8;" type_identifier (pointer_declarator "*pbStack_f8" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_f4;" type_identifier identifier ;) (declaration "int *piStack_f0;" primitive_type (pointer_declarator "*piStack_f0" * identifier) ;) (declaration "pthread_mutex_t pStack_ec;" type_identifier identifier ;) (declaration "re_token_t t;" type_identifier identifier ;) (expression_statement "puVar45 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar45 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "regexp_00 = *(re_string_t **)PTR___stack_chk_guard_00075be8;" (assignment_expression "regexp_00 = *(re_string_t **)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(re_string_t **)PTR___stack_chk_guard_00075be8" * (cast_expression "(re_string_t **)PTR___stack_chk_guard_00075be8" ( (type_descriptor "re_string_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "aVar43 = (anon_union_4_5_a39f51ca_for_opr)preg->buffer;" (assignment_expression "aVar43 = (anon_union_4_5_a39f51ca_for_opr)preg->buffer" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg->buffer" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "preg->buffer" identifier -> field_identifier))) ;) (expression_statement "preg_00 = preg;" (assignment_expression "preg_00 = preg" identifier = identifier) ;) (expression_statement "aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;" (assignment_expression "aVar35 = (anon_union_4_5_a39f51ca_for_opr)token" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)token" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;" (assignment_expression "aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)syntax" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aVar44.idx = nest;" (assignment_expression "aVar44.idx = nest" (field_expression "aVar44.idx" identifier . field_identifier) = identifier) ;) (expression_statement "pbVar38 = (bin_tree_t *)err;" (assignment_expression "pbVar38 = (bin_tree_t *)err" identifier = (cast_expression "(bin_tree_t *)err" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aVar3.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);" (assignment_expression "aVar3.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err)" (field_expression "aVar3.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err)" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "parse_expression(regexp,preg,token,syntax,nest,err)" identifier (argument_list "(regexp,preg,token,syntax,nest,err)" ( identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if ((*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)) {\n    prVar4 = (regex_t *)(aVar43.idx + 0x40);\n    prVar5 = (re_token_t *)(aVar43.idx + 0x38);\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar23 = token->field_0x4;\n    aVar37 = aVar3;\n    if ((bVar23 & 0xf7) != 2) {\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    aVar3.sbcset = (re_bitset_ptr_t)0x0;\n  }" if (parenthesized_expression "((*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0))" ( (binary_expression "(*err == _REG_NOERROR) || ((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)" (parenthesized_expression "(*err == _REG_NOERROR)" ( (binary_expression "*err == _REG_NOERROR" (pointer_expression "*err" * identifier) == identifier) )) || (parenthesized_expression "((bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar3.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar3.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    prVar4 = (regex_t *)(aVar43.idx + 0x40);\n    prVar5 = (re_token_t *)(aVar43.idx + 0x38);\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar23 = token->field_0x4;\n    aVar37 = aVar3;\n    if ((bVar23 & 0xf7) != 2) {\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }" { (expression_statement "prVar4 = (regex_t *)(aVar43.idx + 0x40);" (assignment_expression "prVar4 = (regex_t *)(aVar43.idx + 0x40)" identifier = (cast_expression "(regex_t *)(aVar43.idx + 0x40)" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar43.idx + 0x40)" ( (binary_expression "aVar43.idx + 0x40" (field_expression "aVar43.idx" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "prVar5 = (re_token_t *)(aVar43.idx + 0x38);" (assignment_expression "prVar5 = (re_token_t *)(aVar43.idx + 0x38)" identifier = (cast_expression "(re_token_t *)(aVar43.idx + 0x38)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar43.idx + 0x38)" ( (binary_expression "aVar43.idx + 0x38" (field_expression "aVar43.idx" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x63ec)" ( (binary_expression "PTR_LAB_00075920 + 0x63ec" identifier + number_literal) )))) ;) (labeled_statement "LAB_00051b68:\n    bVar23 = token->field_0x4;" statement_identifier : (expression_statement "bVar23 = token->field_0x4;" (assignment_expression "bVar23 = token->field_0x4" identifier = (field_expression "token->field_0x4" identifier -> field_identifier)) ;)) (expression_statement "aVar37 = aVar3;" (assignment_expression "aVar37 = aVar3" identifier = identifier) ;) (if_statement "if ((bVar23 & 0xf7) != 2) {\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }" if (parenthesized_expression "((bVar23 & 0xf7) != 2)" ( (binary_expression "(bVar23 & 0xf7) != 2" (parenthesized_expression "(bVar23 & 0xf7)" ( (binary_expression "bVar23 & 0xf7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );\n    }" { (do_statement "do {\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      } while( true );" do (compound_statement "{\n        if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;\n        preg_00 = preg;\n        aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;\n        aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;\n        aVar44.idx = nest;\n        pbVar38 = (bin_tree_t *)err;\n        aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);\n        if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }\n        aVar3 = aVar8;\n        if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        t._4_1_ = 0x10;\n        preg_00 = prVar4;\n        aVar35 = aVar37;\n        aVar32.mbcset = aVar43.mbcset;\n        aVar44.sbcset = (re_bitset_ptr_t)&t;\n        aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);\n        puVar2 = PTR_LAB_00075920;\n        if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }\n        bVar23 = token->field_0x4;\n        aVar37.sbcset = aVar3.sbcset;\n        if ((bVar23 & 0xf7) == 2) break;\n      }" { (if_statement "if ((nest != 0) && (aVar3 = aVar37, bVar23 == 9)) break;" if (parenthesized_expression "((nest != 0) && (aVar3 = aVar37, bVar23 == 9))" ( (binary_expression "(nest != 0) && (aVar3 = aVar37, bVar23 == 9)" (parenthesized_expression "(nest != 0)" ( (binary_expression "nest != 0" identifier != number_literal) )) && (parenthesized_expression "(aVar3 = aVar37, bVar23 == 9)" ( (comma_expression "aVar3 = aVar37, bVar23 == 9" (assignment_expression "aVar3 = aVar37" identifier = identifier) , (binary_expression "bVar23 == 9" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "preg_00 = preg;" (assignment_expression "preg_00 = preg" identifier = identifier) ;) (expression_statement "aVar35 = (anon_union_4_5_a39f51ca_for_opr)token;" (assignment_expression "aVar35 = (anon_union_4_5_a39f51ca_for_opr)token" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)token" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax;" (assignment_expression "aVar32 = (anon_union_4_5_a39f51ca_for_opr)syntax" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)syntax" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aVar44.idx = nest;" (assignment_expression "aVar44.idx = nest" (field_expression "aVar44.idx" identifier . field_identifier) = identifier) ;) (expression_statement "pbVar38 = (bin_tree_t *)err;" (assignment_expression "pbVar38 = (bin_tree_t *)err" identifier = (cast_expression "(bin_tree_t *)err" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err);" (assignment_expression "aVar43.mbcset = (re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err)" (field_expression "aVar43.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)parse_expression(regexp,preg,token,syntax,nest,err)" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "parse_expression(regexp,preg,token,syntax,nest,err)" identifier (argument_list "(regexp,preg,token,syntax,nest,err)" ( identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (*err == _REG_NOERROR) {\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }\n        else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }" if (parenthesized_expression "(*err == _REG_NOERROR)" ( (binary_expression "*err == _REG_NOERROR" (pointer_expression "*err" * identifier) == identifier) )) (compound_statement "{\n          aVar3.mbcset = aVar43.mbcset;\n          aVar8 = aVar37;\n          aVar39.mbcset = aVar43.mbcset;\n          if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;\n        }" { (expression_statement "aVar3.mbcset = aVar43.mbcset;" (assignment_expression "aVar3.mbcset = aVar43.mbcset" (field_expression "aVar3.mbcset" identifier . field_identifier) = (field_expression "aVar43.mbcset" identifier . field_identifier)) ;) (expression_statement "aVar8 = aVar37;" (assignment_expression "aVar8 = aVar37" identifier = identifier) ;) (expression_statement "aVar39.mbcset = aVar43.mbcset;" (assignment_expression "aVar39.mbcset = aVar43.mbcset" (field_expression "aVar39.mbcset" identifier . field_identifier) = (field_expression "aVar43.mbcset" identifier . field_identifier)) ;) (if_statement "if ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;" if (parenthesized_expression "((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar37.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar37.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051b68;" goto statement_identifier ;)) }) (else_clause "else {\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }" else (compound_statement "{\n          aVar8.mbcset = aVar43.mbcset;\n          aVar39 = aVar37;\n          if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }\n        }" { (expression_statement "aVar8.mbcset = aVar43.mbcset;" (assignment_expression "aVar8.mbcset = aVar43.mbcset" (field_expression "aVar8.mbcset" identifier . field_identifier) = (field_expression "aVar43.mbcset" identifier . field_identifier)) ;) (expression_statement "aVar39 = aVar37;" (assignment_expression "aVar39 = aVar37" identifier = identifier) ;) (if_statement "if ((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }" if (parenthesized_expression "((bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar43.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar43.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar43.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            aVar35.sbcset = (re_bitset_ptr_t)0x0;\n            if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }\n            aVar3.sbcset = (re_bitset_ptr_t)0x0;\n            break;\n          }" { (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar35.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (if_statement "if ((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0) {\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }" if (parenthesized_expression "((bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar37.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar37.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar37.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);\n              postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n            }" { (expression_statement "preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588);" (assignment_expression "preg_00 = (regex_t *)(PTR_LAB_00075920 + 0x4588)" identifier = (cast_expression "(regex_t *)(PTR_LAB_00075920 + 0x4588)" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x4588)" ( (binary_expression "PTR_LAB_00075920 + 0x4588" identifier + number_literal) )))) ;) (expression_statement "postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);" (call_expression "postorder((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0)" identifier (argument_list "((bin_tree_t *)aVar37.mbcset,\n                        (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0)" ( (cast_expression "(bin_tree_t *)aVar37.mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar37.mbcset" identifier . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "aVar3.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar3.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar3.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (break_statement "break;" break ;) })) }))) (expression_statement "aVar3 = aVar8;" (assignment_expression "aVar3 = aVar8" identifier = identifier) ;) (if_statement "if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00051b68;" if (parenthesized_expression "((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar39.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051b68;" goto statement_identifier ;)) (expression_statement "t._4_1_ = 0x10;" (assignment_expression "t._4_1_ = 0x10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "preg_00 = prVar4;" (assignment_expression "preg_00 = prVar4" identifier = identifier) ;) (expression_statement "aVar35 = aVar37;" (assignment_expression "aVar35 = aVar37" identifier = identifier) ;) (expression_statement "aVar32.mbcset = aVar43.mbcset;" (assignment_expression "aVar32.mbcset = aVar43.mbcset" (field_expression "aVar32.mbcset" identifier . field_identifier) = (field_expression "aVar43.mbcset" identifier . field_identifier)) ;) (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)&t;" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)&t" (field_expression "aVar44.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&t" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5);" (assignment_expression "aVar3.sbcset = (re_bitset_ptr_t)(*pcVar6)(prVar5)" (field_expression "aVar3.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*pcVar6)(prVar5)" (call_expression "(re_bitset_ptr_t)(*pcVar6)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) ))) (argument_list "(prVar5)" ( identifier )))) ;) (expression_statement "puVar2 = PTR_LAB_00075920;" (assignment_expression "puVar2 = PTR_LAB_00075920" identifier = identifier) ;) (if_statement "if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }" if (parenthesized_expression "((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar3.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          preg_00 = (regex_t *)(puVar2 + 0x4588);\n          postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          *err = _REG_ESPACE;\n          break;\n        }" { (expression_statement "postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0);" (call_expression "postorder((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0)" identifier (argument_list "((bin_tree_t *)aVar43.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588),\n                    (void *)0x0)" ( (cast_expression "(bin_tree_t *)aVar43.mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar43.mbcset" identifier . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)(PTR_LAB_00075920 + 0x4588)" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x4588)" ( (binary_expression "PTR_LAB_00075920 + 0x4588" identifier + number_literal) ))) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar35.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "preg_00 = (regex_t *)(puVar2 + 0x4588);" (assignment_expression "preg_00 = (regex_t *)(puVar2 + 0x4588)" identifier = (cast_expression "(regex_t *)(puVar2 + 0x4588)" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4588)" ( (binary_expression "puVar2 + 0x4588" identifier + number_literal) )))) ;) (expression_statement "postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0);" (call_expression "postorder((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0)" identifier (argument_list "((bin_tree_t *)aVar37.mbcset,\n                    (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00,(void *)0x0)" ( (cast_expression "(bin_tree_t *)aVar37.mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar37.mbcset" identifier . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)preg_00" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "aVar3.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar3.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar3.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "*err = _REG_ESPACE;" (assignment_expression "*err = _REG_ESPACE" (pointer_expression "*err" * identifier) = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "bVar23 = token->field_0x4;" (assignment_expression "bVar23 = token->field_0x4" identifier = (field_expression "token->field_0x4" identifier -> field_identifier)) ;) (expression_statement "aVar37.sbcset = aVar3.sbcset;" (assignment_expression "aVar37.sbcset = aVar3.sbcset" (field_expression "aVar37.sbcset" identifier . field_identifier) = (field_expression "aVar3.sbcset" identifier . field_identifier)) ;) (if_statement "if ((bVar23 & 0xf7) == 2) break;" if (parenthesized_expression "((bVar23 & 0xf7) == 2)" ( (binary_expression "(bVar23 & 0xf7) == 2" (parenthesized_expression "(bVar23 & 0xf7)" ( (binary_expression "bVar23 & 0xf7" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    aVar3.sbcset = (re_bitset_ptr_t)0x0;\n  }" else (compound_statement "{\n    aVar3.sbcset = (re_bitset_ptr_t)0x0;\n  }" { (expression_statement "aVar3.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar3.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar3.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) }))) (if_statement "if (regexp_00 == *(re_string_t **)puVar45) {\n    return (bin_tree_t *)aVar3.sbcset;\n  }" if (parenthesized_expression "(regexp_00 == *(re_string_t **)puVar45)" ( (binary_expression "regexp_00 == *(re_string_t **)puVar45" identifier == (pointer_expression "*(re_string_t **)puVar45" * (cast_expression "(re_string_t **)puVar45" ( (type_descriptor "re_string_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return (bin_tree_t *)aVar3.sbcset;\n  }" { (return_statement "return (bin_tree_t *)aVar3.sbcset;" return (cast_expression "(bin_tree_t *)aVar3.sbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.sbcset" identifier . field_identifier)) ;) })) (expression_statement "puVar45 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar45 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar24 = *(int **)(puVar45 + 0x23eec);" (assignment_expression "piVar24 = *(int **)(puVar45 + 0x23eec)" identifier = (pointer_expression "*(int **)(puVar45 + 0x23eec)" * (cast_expression "(int **)(puVar45 + 0x23eec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x23eec)" ( (binary_expression "puVar45 + 0x23eec" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar45 + 0x23c7c);" (assignment_expression "iVar7 = *(int *)(puVar45 + 0x23c7c)" identifier = (pointer_expression "*(int *)(puVar45 + 0x23c7c)" * (cast_expression "(int *)(puVar45 + 0x23c7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x23c7c)" ( (binary_expression "puVar45 + 0x23c7c" identifier + number_literal) ))))) ;) (expression_statement "prVar40 = preg_00->buffer;" (assignment_expression "prVar40 = preg_00->buffer" identifier = (field_expression "preg_00->buffer" identifier -> field_identifier)) ;) (expression_statement "aVar8.sbcset = (re_bitset_ptr_t)*piVar24;" (assignment_expression "aVar8.sbcset = (re_bitset_ptr_t)*piVar24" (field_expression "aVar8.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)*piVar24" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) * identifier)) ;) (expression_statement "bVar25 = prVar40->completed_bkref_map;" (assignment_expression "bVar25 = prVar40->completed_bkref_map" identifier = (field_expression "prVar40->completed_bkref_map" identifier -> field_identifier)) ;) (expression_statement "prVar4 = preg_00;" (assignment_expression "prVar4 = preg_00" identifier = identifier) ;) (expression_statement "aVar3 = aVar35;" (assignment_expression "aVar3 = aVar35" identifier = identifier) ;) (expression_statement "aVar37 = aVar32;" (assignment_expression "aVar37 = aVar32" identifier = identifier) ;) (expression_statement "pStack_ec.__data.__count =\n       (uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38);" (assignment_expression "pStack_ec.__data.__count =\n       (uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38)" (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38)" ( (type_descriptor "uint" type_identifier) ) (call_expression "parse_branch(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38)" identifier (argument_list "(regexp_00,preg_00,(re_token_t *)aVar35.mbcset,aVar32.ctx_type,aVar44.idx,\n                          (reg_errcode_t *)pbVar38)" ( identifier , identifier , (cast_expression "(re_token_t *)aVar35.mbcset" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar35.mbcset" identifier . field_identifier)) , (field_expression "aVar32.ctx_type" identifier . field_identifier) , (field_expression "aVar44.idx" identifier . field_identifier) , (cast_expression "(reg_errcode_t *)pbVar38" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (if_statement "if (pbVar38->parent == (bin_tree_t *)0x0) {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\nLAB_00051d9c:\n    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;\n    iVar10 = *(int *)(puVar45 + 0x23c24);\n    do {\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);\n    pbVar38->parent = (bin_tree_t *)0xc;\n    aVar3 = aVar39;\n  }\n  else {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\n    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;\n    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n  }" if (parenthesized_expression "(pbVar38->parent == (bin_tree_t *)0x0)" ( (binary_expression "pbVar38->parent == (bin_tree_t *)0x0" (field_expression "pbVar38->parent" identifier -> field_identifier) == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\nLAB_00051d9c:\n    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;\n    iVar10 = *(int *)(puVar45 + 0x23c24);\n    do {\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);\n    pbVar38->parent = (bin_tree_t *)0xc;\n    aVar3 = aVar39;\n  }" { (expression_statement "iVar9 = *(int *)(puVar45 + 0x23c7c);" (assignment_expression "iVar9 = *(int *)(puVar45 + 0x23c7c)" identifier = (pointer_expression "*(int *)(puVar45 + 0x23c7c)" * (cast_expression "(int *)(puVar45 + 0x23c7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x23c7c)" ( (binary_expression "puVar45 + 0x23c7c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00051d9c:\n    syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;" statement_identifier : (expression_statement "syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx;" (assignment_expression "syntax = (reg_syntax_t)&prVar40->str_tree_storage_idx" identifier = (binary_expression "(reg_syntax_t)&prVar40->str_tree_storage_idx" (parenthesized_expression "(reg_syntax_t)" ( identifier )) & (field_expression "prVar40->str_tree_storage_idx" identifier -> field_identifier))) ;)) (expression_statement "iVar10 = *(int *)(puVar45 + 0x23c24);" (assignment_expression "iVar10 = *(int *)(puVar45 + 0x23c24)" identifier = (pointer_expression "*(int *)(puVar45 + 0x23c24)" * (cast_expression "(int *)(puVar45 + 0x23c24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x23c24)" ( (binary_expression "puVar45 + 0x23c24" identifier + number_literal) ))))) ;) (do_statement "do {\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    } while ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0);" do (compound_statement "{\n      aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;\n      aVar3.idx = 0x800000;\n      pStack_ec.__data.__count = (uint)aVar39;\n      if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;\n      iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);\n      bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;\n      regexp_00->cur_idx = regexp_00->cur_idx + iVar11;\n      if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }\n      prVar4 = (regex_t *)syntax;\n      pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);\n    }" { (expression_statement "aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count;" (assignment_expression "aVar39 = (anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)pStack_ec.__data.__count" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier))) ;) (expression_statement "aVar3.idx = 0x800000;" (assignment_expression "aVar3.idx = 0x800000" (field_expression "aVar3.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "pStack_ec.__data.__count = (uint)aVar39;" (assignment_expression "pStack_ec.__data.__count = (uint)aVar39" (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)aVar39" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')\n      goto LAB_00051eb8;" if (parenthesized_expression "(*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n')" ( (binary_expression "*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent != '\n'" (pointer_expression "*(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" * (cast_expression "(char *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" & (field_expression "((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" (parenthesized_expression "((bin_tree_t *)&(aVar35.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar35.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar35.mbcset)->range_starts" & (field_expression "(aVar35.mbcset)->range_starts" (parenthesized_expression "(aVar35.mbcset)" ( (field_expression "aVar35.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)))) != (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00051eb8;" goto statement_identifier ;)) (expression_statement "iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000);" (assignment_expression "iVar11 = (*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000)" identifier = (call_expression "(*(code *)(iVar9 + -0x92c))(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000)" (parenthesized_expression "(*(code *)(iVar9 + -0x92c))" ( (pointer_expression "*(code *)(iVar9 + -0x92c)" * (cast_expression "(code *)(iVar9 + -0x92c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x92c)" ( (binary_expression "iVar9 + -0x92c" identifier + number_literal) )))) )) (argument_list "(aVar35.sbcset,regexp_00,aVar32.ctx_type | 0x800000)" ( (field_expression "aVar35.sbcset" identifier . field_identifier) , identifier , (binary_expression "aVar32.ctx_type | 0x800000" (field_expression "aVar32.ctx_type" identifier . field_identifier) | number_literal) )))) ;) (expression_statement "bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent;" (assignment_expression "bVar23 = *(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" identifier = (pointer_expression "*(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" * (cast_expression "(byte *)&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" & (field_expression "((bin_tree_t *)&(aVar35.mbcset)->range_starts)->parent" (parenthesized_expression "((bin_tree_t *)&(aVar35.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar35.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar35.mbcset)->range_starts" & (field_expression "(aVar35.mbcset)->range_starts" (parenthesized_expression "(aVar35.mbcset)" ( (field_expression "aVar35.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))))) ;) (expression_statement "regexp_00->cur_idx = regexp_00->cur_idx + iVar11;" (assignment_expression "regexp_00->cur_idx = regexp_00->cur_idx + iVar11" (field_expression "regexp_00->cur_idx" identifier -> field_identifier) = (binary_expression "regexp_00->cur_idx + iVar11" (field_expression "regexp_00->cur_idx" identifier -> field_identifier) + identifier)) ;) (if_statement "if ((bVar23 & 0xf7) == 2) {\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }\n      else if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }" if (parenthesized_expression "((bVar23 & 0xf7) == 2)" ( (binary_expression "(bVar23 & 0xf7) == 2" (parenthesized_expression "(bVar23 & 0xf7)" ( (binary_expression "bVar23 & 0xf7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        aVar37.sbcset = (re_bitset_ptr_t)0x0;\n      }" { (expression_statement "aVar37.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar37.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar37.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 (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }" else (if_statement "if (((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)) {\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }" if (parenthesized_expression "(((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9))" ( (binary_expression "((re_token_t *)aVar44.sbcset == (re_token_t *)0x0) ||\n              (aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)" (parenthesized_expression "((re_token_t *)aVar44.sbcset == (re_token_t *)0x0)" ( (binary_expression "(re_token_t *)aVar44.sbcset == (re_token_t *)0x0" (cast_expression "(re_token_t *)aVar44.sbcset" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar44.sbcset" identifier . field_identifier)) == (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9)" ( (comma_expression "aVar37.sbcset = (re_bitset_ptr_t)0x0, bVar23 != 9" (assignment_expression "aVar37.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar37.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) , (binary_expression "bVar23 != 9" identifier != number_literal)) ))) )) (compound_statement "{\n        aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;\n        prVar40->completed_bkref_map = bVar25;\n        prVar4 = preg_00;\n        aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);\n        if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }\n        aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;\n        prVar40->completed_bkref_map = (bitset_word_t)aVar43;\n      }" { (expression_statement "aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map;" (assignment_expression "aVar43 = (anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)prVar40->completed_bkref_map" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "prVar40->completed_bkref_map" identifier -> field_identifier))) ;) (expression_statement "prVar40->completed_bkref_map = bVar25;" (assignment_expression "prVar40->completed_bkref_map = bVar25" (field_expression "prVar40->completed_bkref_map" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar4 = preg_00;" (assignment_expression "prVar4 = preg_00" identifier = identifier) ;) (expression_statement "aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset);" (assignment_expression "aVar37.sbcset =\n             (re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset)" (field_expression "aVar37.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset)" (call_expression "(re_bitset_ptr_t)\n             (*(code *)(iVar7 + 0x1ab4))" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(code *)(iVar7 + 0x1ab4))" ( (pointer_expression "*(code *)(iVar7 + 0x1ab4)" * (cast_expression "(code *)(iVar7 + 0x1ab4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1ab4)" ( (binary_expression "iVar7 + 0x1ab4" identifier + number_literal) )))) ))) (argument_list "(regexp_00,preg_00,aVar35.sbcset,aVar32.sbcset)" ( identifier , identifier , (field_expression "aVar35.sbcset" identifier . field_identifier) , (field_expression "aVar32.sbcset" identifier . field_identifier) )))) ;) (if_statement "if ((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)) {\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }" if (parenthesized_expression "((pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0))" ( (binary_expression "(pbVar38->parent != (bin_tree_t *)0x0) &&\n           ((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)" (parenthesized_expression "(pbVar38->parent != (bin_tree_t *)0x0)" ( (binary_expression "pbVar38->parent != (bin_tree_t *)0x0" (field_expression "pbVar38->parent" identifier -> field_identifier) != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar37.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar37.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar37.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          aVar3.sbcset = (re_bitset_ptr_t)0x0;\n          if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }\n          pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n          goto LAB_00051eb8;\n        }" { (expression_statement "aVar3.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar3.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar3.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (if_statement "if ((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0) {\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }" if (parenthesized_expression "((bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar39.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar39.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);\n            postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);\n          }" { (expression_statement "prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588);" (assignment_expression "prVar4 = (regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588)" identifier = (cast_expression "(regex_t *)(*(int *)(puVar45 + 0x23c24) + 0x4588)" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar45 + 0x23c24) + 0x4588)" ( (binary_expression "*(int *)(puVar45 + 0x23c24) + 0x4588" (pointer_expression "*(int *)(puVar45 + 0x23c24)" * (cast_expression "(int *)(puVar45 + 0x23c24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x23c24)" ( (binary_expression "puVar45 + 0x23c24" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0);" (call_expression "postorder((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0)" identifier (argument_list "((bin_tree_t *)aVar39.mbcset,\n                      (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4,(void *)0x0)" ( (cast_expression "(bin_tree_t *)aVar39.mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.mbcset" identifier . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)prVar4" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;" (assignment_expression "pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0" (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)(bin_tree_storage_t *)0x0" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (goto_statement "goto LAB_00051eb8;" goto statement_identifier ;) })) (expression_statement "aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type;" (assignment_expression "aVar43.ctx_type = prVar40->completed_bkref_map | aVar43.ctx_type" (field_expression "aVar43.ctx_type" identifier . field_identifier) = (binary_expression "prVar40->completed_bkref_map | aVar43.ctx_type" (field_expression "prVar40->completed_bkref_map" identifier -> field_identifier) | (field_expression "aVar43.ctx_type" identifier . field_identifier))) ;) (expression_statement "prVar40->completed_bkref_map = (bitset_word_t)aVar43;" (assignment_expression "prVar40->completed_bkref_map = (bitset_word_t)aVar43" (field_expression "prVar40->completed_bkref_map" identifier -> field_identifier) = (cast_expression "(bitset_word_t)aVar43" ( (type_descriptor "bitset_word_t" type_identifier) ) identifier)) ;) })))) (expression_statement "prVar4 = (regex_t *)syntax;" (assignment_expression "prVar4 = (regex_t *)syntax" identifier = (cast_expression "(regex_t *)syntax" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage);" (assignment_expression "pStack_ec.__data.__count = (*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage)" (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (call_expression "(*(code *)(iVar10 + 0x63ec))(&prVar40->str_tree_storage)" (parenthesized_expression "(*(code *)(iVar10 + 0x63ec))" ( (pointer_expression "*(code *)(iVar10 + 0x63ec)" * (cast_expression "(code *)(iVar10 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x63ec)" ( (binary_expression "iVar10 + 0x63ec" identifier + number_literal) )))) )) (argument_list "(&prVar40->str_tree_storage)" ( (pointer_expression "&prVar40->str_tree_storage" & (field_expression "prVar40->str_tree_storage" identifier -> field_identifier)) )))) ;) }) while (parenthesized_expression "((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)pStack_ec.__data.__count" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pbVar38->parent = (bin_tree_t *)0xc;" (assignment_expression "pbVar38->parent = (bin_tree_t *)0xc" (field_expression "pbVar38->parent" identifier -> field_identifier) = (cast_expression "(bin_tree_t *)0xc" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar3 = aVar39;" (assignment_expression "aVar3 = aVar39" identifier = identifier) ;) }) (else_clause "else {\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\n    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;\n    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n  }" else (compound_statement "{\n    iVar9 = *(int *)(puVar45 + 0x23c7c);\n    if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;\n    pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;\n  }" { (expression_statement "iVar9 = *(int *)(puVar45 + 0x23c7c);" (assignment_expression "iVar9 = *(int *)(puVar45 + 0x23c7c)" identifier = (pointer_expression "*(int *)(puVar45 + 0x23c7c)" * (cast_expression "(int *)(puVar45 + 0x23c7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x23c7c)" ( (binary_expression "puVar45 + 0x23c7c" identifier + number_literal) ))))) ;) (if_statement "if ((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)\n    goto LAB_00051d9c;" if (parenthesized_expression "((bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)pStack_ec.__data.__count != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)pStack_ec.__data.__count" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051d9c;" goto statement_identifier ;)) (expression_statement "pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0;" (assignment_expression "pStack_ec.__data.__count = (uint)(bin_tree_storage_t *)0x0" (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)(bin_tree_storage_t *)0x0" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (labeled_statement "LAB_00051eb8:\n  if ((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24) {\n    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;\n  }" statement_identifier : (if_statement "if ((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24) {\n    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;\n  }" if (parenthesized_expression "((bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24)" ( (binary_expression "(bin_tree_storage_t *)aVar8.sbcset == (bin_tree_storage_t *)*piVar24" (cast_expression "(bin_tree_storage_t *)aVar8.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar8.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)*piVar24" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) )) (compound_statement "{\n    return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;\n  }" { (return_statement "return (bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset;" return (cast_expression "(bin_tree_t *)((re_charset_t *)pStack_ec.__data.__count).sbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((re_charset_t *)pStack_ec.__data.__count).sbcset" (parenthesized_expression "((re_charset_t *)pStack_ec.__data.__count)" ( (cast_expression "(re_charset_t *)pStack_ec.__data.__count" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pStack_ec.__data.__count" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier)) )) . field_identifier)) ;) }))) (expression_statement "pcVar6 = *(code **)(puVar45 + 0x23eac);" (assignment_expression "pcVar6 = *(code **)(puVar45 + 0x23eac)" identifier = (pointer_expression "*(code **)(puVar45 + 0x23eac)" * (cast_expression "(code **)(puVar45 + 0x23eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x23eac)" ( (binary_expression "puVar45 + 0x23eac" identifier + number_literal) ))))) ;) (expression_statement "pcVar47 = re_compile_internal;" (assignment_expression "pcVar47 = re_compile_internal" identifier = identifier) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "bVar23 = *(byte *)&(aVar8.mbcset)->nequiv_classes;" (assignment_expression "bVar23 = *(byte *)&(aVar8.mbcset)->nequiv_classes" identifier = (pointer_expression "*(byte *)&(aVar8.mbcset)->nequiv_classes" * (cast_expression "(byte *)&(aVar8.mbcset)->nequiv_classes" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->nequiv_classes" & (field_expression "(aVar8.mbcset)->nequiv_classes" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))))) ;) (expression_statement "pbVar12 = ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent;" (assignment_expression "pbVar12 = ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent" identifier = (field_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent" (parenthesized_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar8.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->range_starts" & (field_expression "(aVar8.mbcset)->range_starts" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)) ;) (expression_statement "(aVar8.mbcset)->char_classes = (wctype_t *)aVar37;" (assignment_expression "(aVar8.mbcset)->char_classes = (wctype_t *)aVar37" (field_expression "(aVar8.mbcset)->char_classes" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wctype_t *)aVar37" ( (type_descriptor "wctype_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(aVar8.mbcset)->range_ends = (wchar_t *)0x0;" (assignment_expression "(aVar8.mbcset)->range_ends = (wchar_t *)0x0" (field_expression "(aVar8.mbcset)->range_ends" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0" (field_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" (parenthesized_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar8.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->ncoll_syms" & (field_expression "(aVar8.mbcset)->ncoll_syms" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "puVar46 = *(uint **)(pcVar6 + 0x23cc4);" (assignment_expression "puVar46 = *(uint **)(pcVar6 + 0x23cc4)" identifier = (pointer_expression "*(uint **)(pcVar6 + 0x23cc4)" * (cast_expression "(uint **)(pcVar6 + 0x23cc4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cc4)" ( (binary_expression "pcVar6 + 0x23cc4" identifier + number_literal) ))))) ;) (expression_statement "aVar39.mbcset = (re_charset_t *)(aVar8.mbcset)->mbchars;" (assignment_expression "aVar39.mbcset = (re_charset_t *)(aVar8.mbcset)->mbchars" (field_expression "aVar39.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)(aVar8.mbcset)->mbchars" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar8.mbcset)->mbchars" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "pbStack_178 = (bin_tree_t *)0x0;" (assignment_expression "pbStack_178 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte *)&(aVar8.mbcset)->nequiv_classes = bVar23 & 9;" (assignment_expression "*(byte *)&(aVar8.mbcset)->nequiv_classes = bVar23 & 9" (pointer_expression "*(byte *)&(aVar8.mbcset)->nequiv_classes" * (cast_expression "(byte *)&(aVar8.mbcset)->nequiv_classes" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->nequiv_classes" & (field_expression "(aVar8.mbcset)->nequiv_classes" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier)))) = (binary_expression "bVar23 & 9" identifier & number_literal)) ;) (expression_statement "pcStack_10c = (char *)*puVar46;" (assignment_expression "pcStack_10c = (char *)*puVar46" identifier = (cast_expression "(char *)*puVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar46" * identifier))) ;) (expression_statement "aStack_108 = aVar35;" (assignment_expression "aStack_108 = aVar35" identifier = identifier) ;) (expression_statement "prStack_104 = regexp_00;" (assignment_expression "prStack_104 = regexp_00" identifier = identifier) ;) (expression_statement "prStack_100 = prVar40;" (assignment_expression "prStack_100 = prVar40" identifier = identifier) ;) (expression_statement "aStack_fc = aVar32;" (assignment_expression "aStack_fc = aVar32" identifier = identifier) ;) (expression_statement "pbStack_f8 = pbVar38;" (assignment_expression "pbStack_f8 = pbVar38" identifier = identifier) ;) (expression_statement "aStack_f4 = aVar44;" (assignment_expression "aStack_f4 = aVar44" identifier = identifier) ;) (expression_statement "piStack_f0 = (int *)syntax;" (assignment_expression "piStack_f0 = (int *)syntax" identifier = (cast_expression "(int *)syntax" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pStack_ec.__data.__lock = (int)aVar43;" (assignment_expression "pStack_ec.__data.__lock = (int)aVar43" (field_expression "pStack_ec.__data.__lock" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (cast_expression "(int)aVar43" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pStack_ec.__data.__owner = (int)pcVar47;" (assignment_expression "pStack_ec.__data.__owner = (int)pcVar47" (field_expression "pStack_ec.__data.__owner" (field_expression "pStack_ec.__data" identifier . field_identifier) . field_identifier) = (cast_expression "(int)pcVar47" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pbVar12 < (bin_tree_t *)0xa0) {\n    aVar32.idx = 0xa0;\n    aVar35 = aVar3;\n    aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);\n    if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }\n    (aVar8.mbcset)->mbchars = (wchar_t *)aVar39;\n    ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;\n  }" if (parenthesized_expression "(pbVar12 < (bin_tree_t *)0xa0)" ( (binary_expression "pbVar12 < (bin_tree_t *)0xa0" identifier < (cast_expression "(bin_tree_t *)0xa0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    aVar32.idx = 0xa0;\n    aVar35 = aVar3;\n    aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);\n    if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }\n    (aVar8.mbcset)->mbchars = (wchar_t *)aVar39;\n    ((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;\n  }" { (expression_statement "aVar32.idx = 0xa0;" (assignment_expression "aVar32.idx = 0xa0" (field_expression "aVar32.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar35 = aVar3;" (assignment_expression "aVar35 = aVar3" identifier = identifier) ;) (expression_statement "aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset);" (assignment_expression "aVar39.sbcset = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset)" (field_expression "aVar39.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))(aVar39.sbcset)" (call_expression "(re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c10))" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(**(code **)(pcVar6 + 0x23c10))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c10)" * (pointer_expression "*(code **)(pcVar6 + 0x23c10)" * (cast_expression "(code **)(pcVar6 + 0x23c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c10)" ( (binary_expression "pcVar6 + 0x23c10" identifier + number_literal) ))))) ))) (argument_list "(aVar39.sbcset)" ( (field_expression "aVar39.sbcset" identifier . field_identifier) )))) ;) (if_statement "if ((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }" if (parenthesized_expression "((bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar39.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar39.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar38 = (bin_tree_t *)0xc;\n      goto LAB_000526ec;\n    }" { (expression_statement "pbVar38 = (bin_tree_t *)0xc;" (assignment_expression "pbVar38 = (bin_tree_t *)0xc" identifier = (cast_expression "(bin_tree_t *)0xc" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000526ec;" goto statement_identifier ;) })) (expression_statement "(aVar8.mbcset)->mbchars = (wchar_t *)aVar39;" (assignment_expression "(aVar8.mbcset)->mbchars = (wchar_t *)aVar39" (field_expression "(aVar8.mbcset)->mbchars" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wchar_t *)aVar39" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0;" (assignment_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0xa0" (field_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent" (parenthesized_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar8.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->range_starts" & (field_expression "(aVar8.mbcset)->range_starts" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = (cast_expression "(bin_tree_t *)0xa0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23bb0);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23bb0)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" * (cast_expression "(code **)(pcVar6 + 0x23bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23bb0)" ( (binary_expression "pcVar6 + 0x23bb0" identifier + number_literal) ))))) ;) (expression_statement "aVar35.idx = 0xa0;" (assignment_expression "aVar35.idx = 0xa0" (field_expression "aVar35.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar32.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar32.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar32.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "(aVar8.mbcset)->range_ends = (wchar_t *)0xa0;" (assignment_expression "(aVar8.mbcset)->range_ends = (wchar_t *)0xa0" (field_expression "(aVar8.mbcset)->range_ends" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wchar_t *)0xa0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*pcVar47)(aVar39.sbcset);" (call_expression "(*pcVar47)(aVar39.sbcset)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(aVar39.sbcset)" ( (field_expression "aVar39.sbcset" identifier . field_identifier) ))) ;) (expression_statement "*(int *)(aVar39.idx + 0x40) = 0x1f;" (assignment_expression "*(int *)(aVar39.idx + 0x40) = 0x1f" (pointer_expression "*(int *)(aVar39.idx + 0x40)" * (cast_expression "(int *)(aVar39.idx + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x40)" ( (binary_expression "aVar39.idx + 0x40" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa) {\n    aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);\n    pcVar47 = *(code **)(pcVar6 + 0x23c08);\n    ((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;\n    bVar25 = (*pcVar47)(aVar44.idx * 8);\n    *aVar39.sbcset = bVar25;\n    if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }\n    else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }\n    prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);\n    ((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;\n    pcVar47 = *(code **)(pcVar6 + 0x23c44);\n    (aVar39.mbcset)->nranges = (Idx)prVar13;\n    iVar7 = (*pcVar47)();\n    pcVar47 = *(code **)(pcVar6 + 0x23b44);\n    *(int *)(aVar39.idx + 0x5c) = iVar7;\n    pbVar14 = (byte *)(*pcVar47)(0xe);\n    aVar32.idx = (Idx)&DAT_00000055;\n    if ((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }\n    bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n    iVar7 = *(int *)(aVar39.idx + 0x5c);\n    (((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;\n    if (iVar7 < 2) {\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }\n    else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }\n    if ((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_000526c8;\n    pbStack_178 = (bin_tree_t *)0x0;\n    if (iVar7 == 0) {\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }\n    else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;\n  }" if (parenthesized_expression "((uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa)" ( (binary_expression "(uint)aVar3 < (bin_tree_storage_t *)0xaaaaaaa" (cast_expression "(uint)aVar3" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(bin_tree_storage_t *)0xaaaaaaa" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);\n    pcVar47 = *(code **)(pcVar6 + 0x23c08);\n    ((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;\n    bVar25 = (*pcVar47)(aVar44.idx * 8);\n    *aVar39.sbcset = bVar25;\n    if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }\n    else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }\n    prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);\n    ((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;\n    pcVar47 = *(code **)(pcVar6 + 0x23c44);\n    (aVar39.mbcset)->nranges = (Idx)prVar13;\n    iVar7 = (*pcVar47)();\n    pcVar47 = *(code **)(pcVar6 + 0x23b44);\n    *(int *)(aVar39.idx + 0x5c) = iVar7;\n    pbVar14 = (byte *)(*pcVar47)(0xe);\n    aVar32.idx = (Idx)&DAT_00000055;\n    if ((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }\n    bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n    iVar7 = *(int *)(aVar39.idx + 0x5c);\n    (((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;\n    if (iVar7 < 2) {\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }\n    else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }\n    if ((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_000526c8;\n    pbStack_178 = (bin_tree_t *)0x0;\n    if (iVar7 == 0) {\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }\n    else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }\n  }" { (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1);" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)(aVar3.idx + 1)" (field_expression "aVar44.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(aVar3.idx + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(aVar3.idx + 1)" ( (binary_expression "aVar3.idx + 1" (field_expression "aVar3.idx" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44;" (assignment_expression "((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent = (bin_tree_t *)aVar44" (field_expression "((bin_tree_t *)&(aVar39.mbcset)->range_starts)->parent" (parenthesized_expression "((bin_tree_t *)&(aVar39.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar39.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar39.mbcset)->range_starts" & (field_expression "(aVar39.mbcset)->range_starts" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = (cast_expression "(bin_tree_t *)aVar44" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar25 = (*pcVar47)(aVar44.idx * 8);" (assignment_expression "bVar25 = (*pcVar47)(aVar44.idx * 8)" identifier = (call_expression "(*pcVar47)(aVar44.idx * 8)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(aVar44.idx * 8)" ( (binary_expression "aVar44.idx * 8" (field_expression "aVar44.idx" identifier . field_identifier) * number_literal) )))) ;) (expression_statement "*aVar39.sbcset = bVar25;" (assignment_expression "*aVar39.sbcset = bVar25" (pointer_expression "*aVar39.sbcset" * (field_expression "aVar39.sbcset" identifier . field_identifier)) = identifier) ;) (if_statement "if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }\n    else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }" if (parenthesized_expression "((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar3.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar38 = (bin_tree_t *)0x0;\n      pbVar33 = (bin_tree_storage_t *)0x1;\n    }" { (expression_statement "pbVar38 = (bin_tree_t *)0x0;" (assignment_expression "pbVar38 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar33 = (bin_tree_storage_t *)0x1;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)0x1" identifier = (cast_expression "(bin_tree_storage_t *)0x1" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }" else (compound_statement "{\n      pbVar33 = (bin_tree_storage_t *)0x1;\n      do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);\n    }" { (expression_statement "pbVar33 = (bin_tree_storage_t *)0x1;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)0x1" identifier = (cast_expression "(bin_tree_storage_t *)0x1" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      } while (pbVar33 <= aVar3.sbcset);" do (compound_statement "{\n        pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);\n        pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);\n      }" { (expression_statement "pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2);" (assignment_expression "pbVar33 = (bin_tree_storage_t *)((int)pbVar33 * 2)" identifier = (cast_expression "(bin_tree_storage_t *)((int)pbVar33 * 2)" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar33 * 2)" ( (binary_expression "(int)pbVar33 * 2" (cast_expression "(int)pbVar33" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3);" (assignment_expression "pbVar38 = (bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3)" identifier = (cast_expression "(bin_tree_t *)((int)&pbVar33[-1].data[0x1e].node_idx + 3)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar33[-1].data[0x1e].node_idx + 3)" ( (binary_expression "(int)&pbVar33[-1].data[0x1e].node_idx + 3" (cast_expression "(int)&pbVar33[-1].data[0x1e].node_idx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar33[-1].data[0x1e].node_idx" & (field_expression "pbVar33[-1].data[0x1e].node_idx" (subscript_expression "pbVar33[-1].data[0x1e]" (field_expression "pbVar33[-1].data" (subscript_expression "pbVar33[-1]" identifier [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(pbVar33 <= aVar3.sbcset)" ( (binary_expression "pbVar33 <= aVar3.sbcset" identifier <= (field_expression "aVar3.sbcset" identifier . field_identifier)) )) ;) }))) (expression_statement "prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33);" (assignment_expression "prVar13 = (re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33)" identifier = (cast_expression "(re_state_table_entry *)(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33)" ( (type_descriptor "re_state_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0xc,pbVar33)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" ( (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" * (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" * (cast_expression "(code **)(pcVar6 + 0x23aa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23aa4)" ( (binary_expression "pcVar6 + 0x23aa4" identifier + number_literal) ))))) )) (argument_list "(0xc,pbVar33)" ( number_literal , identifier ))))) ;) (expression_statement "((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38;" (assignment_expression "((bin_tree_t *)(aVar39.idx + 0x44))->parent = pbVar38" (field_expression "((bin_tree_t *)(aVar39.idx + 0x44))->parent" (parenthesized_expression "((bin_tree_t *)(aVar39.idx + 0x44))" ( (cast_expression "(bin_tree_t *)(aVar39.idx + 0x44)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x44)" ( (binary_expression "aVar39.idx + 0x44" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = identifier) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23c44);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23c44)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c44)" * (cast_expression "(code **)(pcVar6 + 0x23c44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c44)" ( (binary_expression "pcVar6 + 0x23c44" identifier + number_literal) ))))) ;) (expression_statement "(aVar39.mbcset)->nranges = (Idx)prVar13;" (assignment_expression "(aVar39.mbcset)->nranges = (Idx)prVar13" (field_expression "(aVar39.mbcset)->nranges" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Idx)prVar13" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "iVar7 = (*pcVar47)();" (assignment_expression "iVar7 = (*pcVar47)()" identifier = (call_expression "(*pcVar47)()" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23b44);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23b44)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23b44)" * (cast_expression "(code **)(pcVar6 + 0x23b44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23b44)" ( (binary_expression "pcVar6 + 0x23b44" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(aVar39.idx + 0x5c) = iVar7;" (assignment_expression "*(int *)(aVar39.idx + 0x5c) = iVar7" (pointer_expression "*(int *)(aVar39.idx + 0x5c)" * (cast_expression "(int *)(aVar39.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x5c)" ( (binary_expression "aVar39.idx + 0x5c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar14 = (byte *)(*pcVar47)(0xe);" (assignment_expression "pbVar14 = (byte *)(*pcVar47)(0xe)" identifier = (cast_expression "(byte *)(*pcVar47)(0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar47)(0xe)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(0xe)" ( number_literal ))))) ;) (expression_statement "aVar32.idx = (Idx)&DAT_00000055;" (assignment_expression "aVar32.idx = (Idx)&DAT_00000055" (field_expression "aVar32.idx" identifier . field_identifier) = (binary_expression "(Idx)&DAT_00000055" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) ;) (if_statement "if ((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)) {\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }" if (parenthesized_expression "((((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46))" ( (binary_expression "(((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)) &&\n       (aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54))" ( (binary_expression "((*pbVar14 & 0xdf) == 0x55) &&\n        (aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar14 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar14 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar14 & 0xdf)" ( (binary_expression "*pbVar14 & 0xdf" (pointer_expression "*pbVar14" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54)" ( (comma_expression "aVar32.idx = (Idx)&DAT_00000046, (pbVar14[1] & 0xdf) == 0x54" (assignment_expression "aVar32.idx = (Idx)&DAT_00000046" (field_expression "aVar32.idx" identifier . field_identifier) = (binary_expression "(Idx)&DAT_00000046" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) , (binary_expression "(pbVar14[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar14[1] & 0xdf)" ( (binary_expression "pbVar14[1] & 0xdf" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46)" ( (comma_expression "aVar32.idx = (Idx)&DAT_00000004, (pbVar14[2] & 0xdf) == 0x46" (assignment_expression "aVar32.idx = (Idx)&DAT_00000004" (field_expression "aVar32.idx" identifier . field_identifier) = (binary_expression "(Idx)&DAT_00000004" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) , (binary_expression "(pbVar14[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar14[2] & 0xdf)" ( (binary_expression "pbVar14[2] & 0xdf" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar7 = 3;\n      if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }\n      aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);\n      if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }\n    }" { (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (if_statement "if (pbVar14[3] == 0x2d) {\n        iVar7 = 4;\n      }" if (parenthesized_expression "(pbVar14[3] == 0x2d)" ( (binary_expression "pbVar14[3] == 0x2d" (subscript_expression "pbVar14[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar7 = 4;\n      }" { (expression_statement "iVar7 = 4;" (assignment_expression "iVar7 = 4" identifier = number_literal) ;) })) (expression_statement "aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48);" (assignment_expression "aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" (field_expression "aVar32.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(pcVar6 + 0x23694) + 0x2b48)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2b48" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23d14))(pbVar14 + iVar7)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d14))" ( (pointer_expression "**(code **)(pcVar6 + 0x23d14)" * (pointer_expression "*(code **)(pcVar6 + 0x23d14)" * (cast_expression "(code **)(pcVar6 + 0x23d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23d14)" ( (binary_expression "pcVar6 + 0x23d14" identifier + number_literal) ))))) )) (argument_list "(pbVar14 + iVar7)" ( (binary_expression "pbVar14 + iVar7" identifier + identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;\n      }" { (expression_statement "(((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20;" (assignment_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n             (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (binary_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf | 0x20" (binary_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xdf" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) & number_literal) | number_literal)) ;) })) })) (expression_statement "bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;" (assignment_expression "bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c" identifier = (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar7 = *(int *)(aVar39.idx + 0x5c);" (assignment_expression "iVar7 = *(int *)(aVar39.idx + 0x5c)" identifier = (pointer_expression "*(int *)(aVar39.idx + 0x5c)" * (cast_expression "(int *)(aVar39.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x5c)" ( (binary_expression "aVar39.idx + 0x5c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "(((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef;" (assignment_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c = bVar23 & 0xef" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (binary_expression "bVar23 & 0xef" identifier & number_literal)) ;) (if_statement "if (iVar7 < 2) {\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }\n    else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }" if (parenthesized_expression "(iVar7 < 2)" ( (binary_expression "iVar7 < 2" identifier < number_literal) )) (compound_statement "{\nLAB_00052094:\n      bVar25 = *aVar39.sbcset;\n    }" { (labeled_statement "LAB_00052094:\n      bVar25 = *aVar39.sbcset;" statement_identifier : (expression_statement "bVar25 = *aVar39.sbcset;" (assignment_expression "bVar25 = *aVar39.sbcset" identifier = (pointer_expression "*aVar39.sbcset" * (field_expression "aVar39.sbcset" identifier . field_identifier))) ;)) }) (else_clause "else {\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }" else (compound_statement "{\n      if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      aVar32.idx = 1;\n      pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);\n      *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;\n      if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;\n      iVar7 = 0;\n      do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);\n      bVar25 = *aVar39.sbcset;\n      aVar32.idx = 0x20;\n    }" { (if_statement "if ((bVar23 & 0x20) != 0) {\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" if (parenthesized_expression "((bVar23 & 0x20) != 0)" ( (binary_expression "(bVar23 & 0x20) != 0" (parenthesized_expression "(bVar23 & 0x20)" ( (binary_expression "bVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" { (expression_statement "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064);" (assignment_expression "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064)" (pointer_expression "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" * (cast_expression "(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" ( (type_descriptor "re_bitset_ptr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x3c)" ( (binary_expression "aVar39.idx + 0x3c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = (call_expression "(re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x3064)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(pcVar6 + 0x23694) + 0x3064)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x3064" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00052094;" goto statement_identifier ;) })) (expression_statement "aVar32.idx = 1;" (assignment_expression "aVar32.idx = 1" (field_expression "aVar32.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20);" (assignment_expression "pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20)" identifier = (call_expression "(re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))(0x20)" (call_expression "(re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23aa4))" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(**(code **)(pcVar6 + 0x23aa4))" ( (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" * (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" * (cast_expression "(code **)(pcVar6 + 0x23aa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23aa4)" ( (binary_expression "pcVar6 + 0x23aa4" identifier + number_literal) ))))) ))) (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16;" (assignment_expression "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) = pbVar16" (pointer_expression "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" * (cast_expression "(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" ( (type_descriptor "re_bitset_ptr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x3c)" ( (binary_expression "aVar39.idx + 0x3c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pbVar16 == (re_bitset_ptr_t)0x0) goto LAB_000526c8;" if (parenthesized_expression "(pbVar16 == (re_bitset_ptr_t)0x0)" ( (binary_expression "pbVar16 == (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_000526c8;" goto statement_identifier ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      } while (iVar7 != 0x20);" do (compound_statement "{\n        uVar26 = iVar7 << 3;\n        uVar18 = 0;\n        do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);\nLAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);\n        iVar7 = iVar7 + 4;\n      }" { (expression_statement "uVar26 = iVar7 << 3;" (assignment_expression "uVar26 = iVar7 << 3" identifier = (binary_expression "iVar7 << 3" identifier << number_literal)) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        } while (uVar36 + 1 != 0x20);" do (compound_statement "{\n          while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar26 = uVar26 + 1;\n          uVar18 = uVar36 + 1;\n        }" { (while_statement "while( true ) {\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar36 = uVar18;\n            uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);\n            if (uVar18 == 0xffffffff) break;\n            puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);\n            *puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);\n            if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }\n            uVar26 = uVar26 + 1;\n            uVar18 = uVar36 + 1;\n            if (uVar36 + 1 == 0x20) goto LAB_000527e4;\n          }" { (expression_statement "uVar36 = uVar18;" (assignment_expression "uVar36 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26);" (assignment_expression "uVar18 = (**(code **)(pcVar6 + 0x23b9c))(uVar26)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23b9c))(uVar26)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23b9c))" ( (pointer_expression "**(code **)(pcVar6 + 0x23b9c)" * (pointer_expression "*(code **)(pcVar6 + 0x23b9c)" * (cast_expression "(code **)(pcVar6 + 0x23b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23b9c)" ( (binary_expression "pcVar6 + 0x23b9c" identifier + number_literal) ))))) )) (argument_list "(uVar26)" ( identifier )))) ;) (if_statement "if (uVar18 == 0xffffffff) break;" if (parenthesized_expression "(uVar18 == 0xffffffff)" ( (binary_expression "uVar18 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7);" (assignment_expression "puVar30 = (uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7)" identifier = (cast_expression "(uint *)((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7)" ( (binary_expression "(int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c) + iVar7" (cast_expression "(int)*(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" * (cast_expression "(re_bitset_ptr_t *)(aVar39.idx + 0x3c)" ( (type_descriptor "re_bitset_ptr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x3c)" ( (binary_expression "aVar39.idx + 0x3c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))))) + identifier) )))) ;) (expression_statement "*puVar30 = *puVar30 | 1 << (uVar36 & 0x1f);" (assignment_expression "*puVar30 = *puVar30 | 1 << (uVar36 & 0x1f)" (pointer_expression "*puVar30" * identifier) = (binary_expression "*puVar30 | 1 << (uVar36 & 0x1f)" (pointer_expression "*puVar30" * identifier) | (binary_expression "1 << (uVar36 & 0x1f)" number_literal << (parenthesized_expression "(uVar36 & 0x1f)" ( (binary_expression "uVar36 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if (((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)) {\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }" if (parenthesized_expression "(((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26))" ( (binary_expression "((uVar26 & 0xffffff80) == 0) && (uVar18 != uVar26)" (parenthesized_expression "((uVar26 & 0xffffff80) == 0)" ( (binary_expression "(uVar26 & 0xffffff80) == 0" (parenthesized_expression "(uVar26 & 0xffffff80)" ( (binary_expression "uVar26 & 0xffffff80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar18 != uVar26)" ( (binary_expression "uVar18 != uVar26" identifier != identifier) ))) )) (compound_statement "{\nLAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;\n            }" { (labeled_statement "LAB_00052780:\n              (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;" statement_identifier : (expression_statement "(((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10;" (assignment_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                   (((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (binary_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef | 0x10" (binary_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0xef" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_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 "uVar18 = uVar36 + 1;" (assignment_expression "uVar18 = uVar36 + 1" identifier = (binary_expression "uVar36 + 1" identifier + number_literal)) ;) (if_statement "if (uVar36 + 1 == 0x20) goto LAB_000527e4;" if (parenthesized_expression "(uVar36 + 1 == 0x20)" ( (binary_expression "uVar36 + 1 == 0x20" (binary_expression "uVar36 + 1" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_000527e4;" goto statement_identifier ;)) })) (if_statement "if ((uVar26 & 0xffffff80) == 0) goto LAB_00052780;" if (parenthesized_expression "((uVar26 & 0xffffff80) == 0)" ( (binary_expression "(uVar26 & 0xffffff80) == 0" (parenthesized_expression "(uVar26 & 0xffffff80)" ( (binary_expression "uVar26 & 0xffffff80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00052780;" goto statement_identifier ;)) (expression_statement "uVar26 = uVar26 + 1;" (assignment_expression "uVar26 = uVar26 + 1" identifier = (binary_expression "uVar26 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = uVar36 + 1;" (assignment_expression "uVar18 = uVar36 + 1" identifier = (binary_expression "uVar36 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar36 + 1 != 0x20)" ( (binary_expression "uVar36 + 1 != 0x20" (binary_expression "uVar36 + 1" identifier + number_literal) != number_literal) )) ;) (labeled_statement "LAB_000527e4:\n        aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);" statement_identifier : (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1);" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)(uVar36 + 1)" (field_expression "aVar35.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(uVar36 + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(uVar36 + 1)" ( (binary_expression "uVar36 + 1" identifier + number_literal) )))) ;)) (expression_statement "iVar7 = iVar7 + 4;" (assignment_expression "iVar7 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0x20)" ( (binary_expression "iVar7 != 0x20" identifier != number_literal) )) ;) (expression_statement "bVar25 = *aVar39.sbcset;" (assignment_expression "bVar25 = *aVar39.sbcset" identifier = (pointer_expression "*aVar39.sbcset" * (field_expression "aVar39.sbcset" identifier . field_identifier))) ;) (expression_statement "aVar32.idx = 0x20;" (assignment_expression "aVar32.idx = 0x20" (field_expression "aVar32.idx" identifier . field_identifier) = number_literal) ;) }))) (if_statement "if ((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_000526c8;" if (parenthesized_expression "((bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0))" ( (binary_expression "(bVar25 == 0) ||\n       (iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0)" (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0)" ( (comma_expression "iVar7 = *(int *)(pcVar6 + 0x23b8c),\n       (re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x23b8c)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x23b8c)" * (cast_expression "(int *)(pcVar6 + 0x23b8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23b8c)" ( (binary_expression "pcVar6 + 0x23b8c" identifier + number_literal) ))))) , (binary_expression "(re_state_table_entry *)(aVar39.mbcset)->nranges == (re_state_table_entry *)0x0" (cast_expression "(re_state_table_entry *)(aVar39.mbcset)->nranges" ( (type_descriptor "re_state_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar39.mbcset)->nranges" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.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_000526c8;" goto statement_identifier ;)) (expression_statement "pbStack_178 = (bin_tree_t *)0x0;" (assignment_expression "pbStack_178 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 == 0) {\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }\n    else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;\n      (**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);\n      rVar42 = aVar37.ctx_type & 0x400000;\n      rStack_160.icase = rVar42 != 0;\n      aVar43.idx._0_3_ = 0;\n      aVar43.idx._3_1_ = rStack_160.icase;\n      rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;\n      bVar25 = *(int *)(aVar39.idx + 0x5c);\n      aVar32.idx = 1;\n      if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }\n      uVar18 = rVar28 << 2;\n      aVar35.ctx_type = uVar18 >> 0x1f;\n      rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;\n      rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);\n      rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);\n      rStack_160.raw_mbs = (uchar *)prVar4;\n      rStack_160.raw_len = aVar3.idx;\n      rStack_160.len = aVar3.idx;\n      rStack_160.raw_stop = aVar3.idx;\n      rStack_160.stop = aVar3.idx;\n      rStack_160.trans = (uchar *)pbVar38;\n      rStack_160.mb_cur_max = bVar25;\n      if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n      if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n      pbStack_178 = pbVar12;\nLAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;\n      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);\n      ((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;\n      (((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;\n      (*pcVar47)(pbVar38);\n      *(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;\n      re_string_destruct(&rStack_160);\n      aVar32 = aVar44;\njoined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }\n    }" { (labeled_statement "LAB_000520dc:\n      pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;" statement_identifier : (expression_statement "pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars;" (assignment_expression "pbVar38 = (bin_tree_t *)(aVar8.mbcset)->nmbchars" identifier = (cast_expression "(bin_tree_t *)(aVar8.mbcset)->nmbchars" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar8.mbcset)->nmbchars" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) ;)) (expression_statement "(**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c);" (call_expression "(**(code **)(pcVar6 + 0x23bb0))(&rStack_160.mbs,0,0x4c)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23bb0))" ( (pointer_expression "**(code **)(pcVar6 + 0x23bb0)" * (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" * (cast_expression "(code **)(pcVar6 + 0x23bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23bb0)" ( (binary_expression "pcVar6 + 0x23bb0" identifier + number_literal) ))))) )) (argument_list "(&rStack_160.mbs,0,0x4c)" ( (pointer_expression "&rStack_160.mbs" & (field_expression "rStack_160.mbs" identifier . field_identifier)) , number_literal , number_literal ))) ;) (expression_statement "rVar42 = aVar37.ctx_type & 0x400000;" (assignment_expression "rVar42 = aVar37.ctx_type & 0x400000" identifier = (binary_expression "aVar37.ctx_type & 0x400000" (field_expression "aVar37.ctx_type" identifier . field_identifier) & number_literal)) ;) (expression_statement "rStack_160.icase = rVar42 != 0;" (assignment_expression "rStack_160.icase = rVar42 != 0" (field_expression "rStack_160.icase" identifier . field_identifier) = (binary_expression "rVar42 != 0" identifier != number_literal)) ;) (expression_statement "aVar43.idx._0_3_ = 0;" (assignment_expression "aVar43.idx._0_3_ = 0" (field_expression "aVar43.idx._0_3_" (field_expression "aVar43.idx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar43.idx._3_1_ = rStack_160.icase;" (assignment_expression "aVar43.idx._3_1_ = rStack_160.icase" (field_expression "aVar43.idx._3_1_" (field_expression "aVar43.idx" identifier . field_identifier) . field_identifier) = (field_expression "rStack_160.icase" identifier . field_identifier)) ;) (expression_statement "rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type;" (assignment_expression "rVar28 = (((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type" identifier = (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).ctx_type" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar25 = *(int *)(aVar39.idx + 0x5c);" (assignment_expression "bVar25 = *(int *)(aVar39.idx + 0x5c)" identifier = (pointer_expression "*(int *)(aVar39.idx + 0x5c)" * (cast_expression "(int *)(aVar39.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x5c)" ( (binary_expression "aVar39.idx + 0x5c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "aVar32.idx = 1;" (assignment_expression "aVar32.idx = 1" (field_expression "aVar32.idx" identifier . field_identifier) = number_literal) ;) (if_statement "if (pbVar38 == (bin_tree_t *)0x0) {\n        aVar32 = aVar43;\n      }" if (parenthesized_expression "(pbVar38 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        aVar32 = aVar43;\n      }" { (expression_statement "aVar32 = aVar43;" (assignment_expression "aVar32 = aVar43" identifier = identifier) ;) })) (expression_statement "uVar18 = rVar28 << 2;" (assignment_expression "uVar18 = rVar28 << 2" identifier = (binary_expression "rVar28 << 2" identifier << number_literal)) ;) (expression_statement "aVar35.ctx_type = uVar18 >> 0x1f;" (assignment_expression "aVar35.ctx_type = uVar18 >> 0x1f" (field_expression "aVar35.ctx_type" identifier . field_identifier) = (binary_expression "uVar18 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "rStack_160.mbs_allocated = (uchar)aVar32.ctx_type;" (assignment_expression "rStack_160.mbs_allocated = (uchar)aVar32.ctx_type" (field_expression "rStack_160.mbs_allocated" identifier . field_identifier) = (cast_expression "(uchar)aVar32.ctx_type" ( (type_descriptor "uchar" type_identifier) ) (field_expression "aVar32.ctx_type" identifier . field_identifier))) ;) (expression_statement "rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f);" (assignment_expression "rStack_160.is_utf8 = (uchar)(uVar18 >> 0x1f)" (field_expression "rStack_160.is_utf8" identifier . field_identifier) = (call_expression "(uchar)(uVar18 >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar18 >> 0x1f)" ( (binary_expression "uVar18 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f);" (assignment_expression "rStack_160.map_notascii = (uchar)((rVar28 << 3) >> 0x1f)" (field_expression "rStack_160.map_notascii" identifier . field_identifier) = (call_expression "(uchar)((rVar28 << 3) >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((rVar28 << 3) >> 0x1f)" ( (binary_expression "(rVar28 << 3) >> 0x1f" (parenthesized_expression "(rVar28 << 3)" ( (binary_expression "rVar28 << 3" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "rStack_160.raw_mbs = (uchar *)prVar4;" (assignment_expression "rStack_160.raw_mbs = (uchar *)prVar4" (field_expression "rStack_160.raw_mbs" identifier . field_identifier) = (cast_expression "(uchar *)prVar4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "rStack_160.raw_len = aVar3.idx;" (assignment_expression "rStack_160.raw_len = aVar3.idx" (field_expression "rStack_160.raw_len" identifier . field_identifier) = (field_expression "aVar3.idx" identifier . field_identifier)) ;) (expression_statement "rStack_160.len = aVar3.idx;" (assignment_expression "rStack_160.len = aVar3.idx" (field_expression "rStack_160.len" identifier . field_identifier) = (field_expression "aVar3.idx" identifier . field_identifier)) ;) (expression_statement "rStack_160.raw_stop = aVar3.idx;" (assignment_expression "rStack_160.raw_stop = aVar3.idx" (field_expression "rStack_160.raw_stop" identifier . field_identifier) = (field_expression "aVar3.idx" identifier . field_identifier)) ;) (expression_statement "rStack_160.stop = aVar3.idx;" (assignment_expression "rStack_160.stop = aVar3.idx" (field_expression "rStack_160.stop" identifier . field_identifier) = (field_expression "aVar3.idx" identifier . field_identifier)) ;) (expression_statement "rStack_160.trans = (uchar *)pbVar38;" (assignment_expression "rStack_160.trans = (uchar *)pbVar38" (field_expression "rStack_160.trans" identifier . field_identifier) = (cast_expression "(uchar *)pbVar38" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "rStack_160.mb_cur_max = bVar25;" (assignment_expression "rStack_160.mb_cur_max = bVar25" (field_expression "rStack_160.mb_cur_max" identifier . field_identifier) = identifier) ;) (if_statement "if ((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0) {\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }" if (parenthesized_expression "((bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar3.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar3.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00052158:\n        aVar44 = aVar43;\n        if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }\n        rStack_160.mbs = (uchar *)prVar4;\n        if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }\nLAB_00052338:\n        rStack_160.valid_len = aVar32.idx;\n        pbStack_178 = (bin_tree_t *)0x0;\n        bVar25 = *aVar8.sbcset;\n        (((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;\n        ((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;\n        iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);\n        rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;\n        aVar44 = aVar8;\n        aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;\n        aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);\n        if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }\n        aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n        pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);\n        pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);\n        aVar35 = aVar32;\nLAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;\n        aVar32.idx = *aVar8.sbcset;\n        if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        goto LAB_000521dc;\n      }" { (labeled_statement "LAB_00052158:\n        aVar44 = aVar43;" statement_identifier : (expression_statement "aVar44 = aVar43;" (assignment_expression "aVar44 = aVar43" identifier = identifier) ;)) (if_statement "if ((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0) {\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }" if (parenthesized_expression "((bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar32.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar32.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar32.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          prVar4 = (regex_t *)rStack_160.mbs;\n        }" { (expression_statement "prVar4 = (regex_t *)rStack_160.mbs;" (assignment_expression "prVar4 = (regex_t *)rStack_160.mbs" identifier = (cast_expression "(regex_t *)rStack_160.mbs" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "rStack_160.mbs" identifier . field_identifier))) ;) })) (expression_statement "rStack_160.mbs = (uchar *)prVar4;" (assignment_expression "rStack_160.mbs = (uchar *)prVar4" (field_expression "rStack_160.mbs" identifier . field_identifier) = (cast_expression "(uchar *)prVar4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (rVar42 == 0) {\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }\n        else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }" if (parenthesized_expression "(rVar42 == 0)" ( (binary_expression "rVar42 == 0" identifier == number_literal) )) (compound_statement "{\n          if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }\n        }" { (if_statement "if (1 < (int)bVar25) {\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }\n          else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }" if (parenthesized_expression "(1 < (int)bVar25)" ( (binary_expression "1 < (int)bVar25" number_literal < (cast_expression "(int)bVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            build_wcs_buffer(&rStack_160);\n            aVar32.idx = rStack_160.valid_len;\n          }" { (expression_statement "build_wcs_buffer(&rStack_160);" (call_expression "build_wcs_buffer(&rStack_160)" identifier (argument_list "(&rStack_160)" ( (pointer_expression "&rStack_160" & identifier) ))) ;) (expression_statement "aVar32.idx = rStack_160.valid_len;" (assignment_expression "aVar32.idx = rStack_160.valid_len" (field_expression "aVar32.idx" identifier . field_identifier) = (field_expression "rStack_160.valid_len" identifier . field_identifier)) ;) }) (else_clause "else if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }" else (if_statement "if (pbVar38 == (bin_tree_t *)0x0) {\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }\n          else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }" if (parenthesized_expression "(pbVar38 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            rStack_160.valid_raw_len = rStack_160.bufs_len;\n            aVar32.idx = rStack_160.bufs_len;\n          }" { (expression_statement "rStack_160.valid_raw_len = rStack_160.bufs_len;" (assignment_expression "rStack_160.valid_raw_len = rStack_160.bufs_len" (field_expression "rStack_160.valid_raw_len" identifier . field_identifier) = (field_expression "rStack_160.bufs_len" identifier . field_identifier)) ;) (expression_statement "aVar32.idx = rStack_160.bufs_len;" (assignment_expression "aVar32.idx = rStack_160.bufs_len" (field_expression "aVar32.idx" identifier . field_identifier) = (field_expression "rStack_160.bufs_len" identifier . field_identifier)) ;) }) (else_clause "else {\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }" else (compound_statement "{\n            if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }\n            aVar32.idx = rStack_160.valid_len;\n            rStack_160.valid_raw_len = rStack_160.valid_len;\n            if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }\n          }" { (if_statement "if (rStack_160.len <= rStack_160.bufs_len) {\n              rStack_160.bufs_len = rStack_160.len;\n            }" if (parenthesized_expression "(rStack_160.len <= rStack_160.bufs_len)" ( (binary_expression "rStack_160.len <= rStack_160.bufs_len" (field_expression "rStack_160.len" identifier . field_identifier) <= (field_expression "rStack_160.bufs_len" identifier . field_identifier)) )) (compound_statement "{\n              rStack_160.bufs_len = rStack_160.len;\n            }" { (expression_statement "rStack_160.bufs_len = rStack_160.len;" (assignment_expression "rStack_160.bufs_len = rStack_160.len" (field_expression "rStack_160.bufs_len" identifier . field_identifier) = (field_expression "rStack_160.len" identifier . field_identifier)) ;) })) (expression_statement "aVar32.idx = rStack_160.valid_len;" (assignment_expression "aVar32.idx = rStack_160.valid_len" (field_expression "aVar32.idx" identifier . field_identifier) = (field_expression "rStack_160.valid_len" identifier . field_identifier)) ;) (expression_statement "rStack_160.valid_raw_len = rStack_160.valid_len;" (assignment_expression "rStack_160.valid_raw_len = rStack_160.valid_len" (field_expression "rStack_160.valid_raw_len" identifier . field_identifier) = (field_expression "rStack_160.valid_len" identifier . field_identifier)) ;) (if_statement "if (rStack_160.valid_len < rStack_160.bufs_len) {\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }" if (parenthesized_expression "(rStack_160.valid_len < rStack_160.bufs_len)" ( (binary_expression "rStack_160.valid_len < rStack_160.bufs_len" (field_expression "rStack_160.valid_len" identifier . field_identifier) < (field_expression "rStack_160.bufs_len" identifier . field_identifier)) )) (compound_statement "{\n              do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);\n            }" { (do_statement "do {\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              } while (rStack_160.bufs_len != rStack_160.valid_len);" do (compound_statement "{\n                puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);\n                puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);\n                rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;\n                *puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));\n                aVar32.idx = rStack_160.bufs_len;\n                rStack_160.valid_raw_len = rStack_160.bufs_len;\n              }" { (expression_statement "puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len);" (assignment_expression "puVar41 = (uchar *)((int)&prVar4->buffer + rStack_160.valid_len)" identifier = (cast_expression "(uchar *)((int)&prVar4->buffer + rStack_160.valid_len)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar4->buffer + rStack_160.valid_len)" ( (binary_expression "(int)&prVar4->buffer + rStack_160.valid_len" (cast_expression "(int)&prVar4->buffer" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar4->buffer" & (field_expression "prVar4->buffer" identifier -> field_identifier))) + (field_expression "rStack_160.valid_len" identifier . field_identifier)) )))) ;) (expression_statement "puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len);" (assignment_expression "puVar15 = (undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len)" identifier = (cast_expression "(undefined1 *)\n                          ((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len)" ( (binary_expression "(int)(re_dfa_t **)rStack_160.raw_mbs + rStack_160.valid_len" (cast_expression "(int)(re_dfa_t **)rStack_160.raw_mbs" ( (type_descriptor "int" primitive_type) ) (cast_expression "(re_dfa_t **)rStack_160.raw_mbs" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rStack_160.raw_mbs" identifier . field_identifier))) + (field_expression "rStack_160.valid_len" identifier . field_identifier)) )))) ;) (expression_statement "rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1;" (assignment_expression "rStack_160.valid_len = (int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1" (field_expression "rStack_160.valid_len" identifier . field_identifier) = (binary_expression "(int)&((re_charset_t *)rStack_160.valid_len)->mbchars + 1" (cast_expression "(int)&((re_charset_t *)rStack_160.valid_len)->mbchars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_charset_t *)rStack_160.valid_len)->mbchars" & (field_expression "((re_charset_t *)rStack_160.valid_len)->mbchars" (parenthesized_expression "((re_charset_t *)rStack_160.valid_len)" ( (cast_expression "(re_charset_t *)rStack_160.valid_len" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "rStack_160.valid_len" identifier . field_identifier)) )) -> field_identifier))) + number_literal)) ;) (expression_statement "*puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15));" (assignment_expression "*puVar41 = *(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15))" (pointer_expression "*puVar41" * identifier) = (pointer_expression "*(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15))" * (cast_expression "(uchar *)((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15))" ( (binary_expression "(int)(bin_tree_t **)rStack_160.trans +\n                                     (uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15)" (cast_expression "(int)(bin_tree_t **)rStack_160.trans" ( (type_descriptor "int" primitive_type) ) (cast_expression "(bin_tree_t **)rStack_160.trans" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rStack_160.trans" identifier . field_identifier))) + (binary_expression "(uint)*(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15)" ( (binary_expression "(int)(re_hashval_t *)rStack_160.raw_mbs_idx +\n                                                    (int)puVar15" (cast_expression "(int)(re_hashval_t *)rStack_160.raw_mbs_idx" ( (type_descriptor "int" primitive_type) ) (cast_expression "(re_hashval_t *)rStack_160.raw_mbs_idx" ( (type_descriptor "re_hashval_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "rStack_160.raw_mbs_idx" identifier . field_identifier))) + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ))))) ;) (expression_statement "aVar32.idx = rStack_160.bufs_len;" (assignment_expression "aVar32.idx = rStack_160.bufs_len" (field_expression "aVar32.idx" identifier . field_identifier) = (field_expression "rStack_160.bufs_len" identifier . field_identifier)) ;) (expression_statement "rStack_160.valid_raw_len = rStack_160.bufs_len;" (assignment_expression "rStack_160.valid_raw_len = rStack_160.bufs_len" (field_expression "rStack_160.valid_raw_len" identifier . field_identifier) = (field_expression "rStack_160.bufs_len" identifier . field_identifier)) ;) }) while (parenthesized_expression "(rStack_160.bufs_len != rStack_160.valid_len)" ( (binary_expression "rStack_160.bufs_len != rStack_160.valid_len" (field_expression "rStack_160.bufs_len" identifier . field_identifier) != (field_expression "rStack_160.valid_len" identifier . field_identifier)) )) ;) })) }))))) }) (else_clause "else {\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }" else (compound_statement "{\n          if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }\n          build_upper_buffer(&rStack_160);\n          aVar32.idx = rStack_160.valid_len;\n        }" { (if_statement "if (1 < (int)bVar25) {\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }" if (parenthesized_expression "(1 < (int)bVar25)" ( (binary_expression "1 < (int)bVar25" number_literal < (cast_expression "(int)bVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);\n            goto LAB_000521d4;\n          }" { (do_statement "do {\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            } while (pbVar12 == (bin_tree_t *)0x0);" do (compound_statement "{\n              pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);\n              if (pbVar12 != (bin_tree_t *)0x0) break;\n              aVar32.idx = rStack_160.valid_len;\n              if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;\n              pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);\n            }" { (expression_statement "pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160);" (assignment_expression "pbVar12 = (bin_tree_t *)build_wcs_upper_buffer(&rStack_160)" identifier = (cast_expression "(bin_tree_t *)build_wcs_upper_buffer(&rStack_160)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "build_wcs_upper_buffer(&rStack_160)" identifier (argument_list "(&rStack_160)" ( (pointer_expression "&rStack_160" & identifier) ))))) ;) (if_statement "if (pbVar12 != (bin_tree_t *)0x0) break;" if (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "aVar32.idx = rStack_160.valid_len;" (assignment_expression "aVar32.idx = rStack_160.valid_len" (field_expression "aVar32.idx" identifier . field_identifier) = (field_expression "rStack_160.valid_len" identifier . field_identifier)) ;) (if_statement "if ((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))\n              goto LAB_00052338;" if (parenthesized_expression "((aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len))" ( (binary_expression "(aVar3.idx <= rStack_160.valid_raw_len) ||\n                 (aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len)" (parenthesized_expression "(aVar3.idx <= rStack_160.valid_raw_len)" ( (binary_expression "aVar3.idx <= rStack_160.valid_raw_len" (field_expression "aVar3.idx" identifier . field_identifier) <= (field_expression "rStack_160.valid_raw_len" identifier . field_identifier)) )) || (parenthesized_expression "(aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len)" ( (comma_expression "aVar44.ctx_type = rStack_160.bufs_len << 1,\n                 (int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len" (assignment_expression "aVar44.ctx_type = rStack_160.bufs_len << 1" (field_expression "aVar44.ctx_type" identifier . field_identifier) = (binary_expression "rStack_160.bufs_len << 1" (field_expression "rStack_160.bufs_len" identifier . field_identifier) << number_literal)) , (binary_expression "(int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)) < rStack_160.bufs_len" (cast_expression "(int)(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c))" ( (binary_expression "rStack_160.valid_len + *(int *)(aVar39.idx + 0x5c)" (field_expression "rStack_160.valid_len" identifier . field_identifier) + (pointer_expression "*(int *)(aVar39.idx + 0x5c)" * (cast_expression "(int *)(aVar39.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x5c)" ( (binary_expression "aVar39.idx + 0x5c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))))) ))) < (field_expression "rStack_160.bufs_len" identifier . field_identifier))) ))) )) (goto_statement "goto LAB_00052338;" goto statement_identifier ;)) (expression_statement "pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);" (assignment_expression "pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx)" identifier = (cast_expression "(bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_realloc_buffers(&rStack_160,aVar44.idx)" identifier (argument_list "(&rStack_160,aVar44.idx)" ( (pointer_expression "&rStack_160" & identifier) , (field_expression "aVar44.idx" identifier . field_identifier) ))))) ;) }) while (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) (expression_statement "build_upper_buffer(&rStack_160);" (call_expression "build_upper_buffer(&rStack_160)" identifier (argument_list "(&rStack_160)" ( (pointer_expression "&rStack_160" & identifier) ))) ;) (expression_statement "aVar32.idx = rStack_160.valid_len;" (assignment_expression "aVar32.idx = rStack_160.valid_len" (field_expression "aVar32.idx" identifier . field_identifier) = (field_expression "rStack_160.valid_len" identifier . field_identifier)) ;) }))) (labeled_statement "LAB_00052338:\n        rStack_160.valid_len = aVar32.idx;" statement_identifier : (expression_statement "rStack_160.valid_len = aVar32.idx;" (assignment_expression "rStack_160.valid_len = aVar32.idx" (field_expression "rStack_160.valid_len" identifier . field_identifier) = (field_expression "aVar32.idx" identifier . field_identifier)) ;)) (expression_statement "pbStack_178 = (bin_tree_t *)0x0;" (assignment_expression "pbStack_178 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar25 = *aVar8.sbcset;" (assignment_expression "bVar25 = *aVar8.sbcset" identifier = (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier))) ;) (expression_statement "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)0x0" (field_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" (parenthesized_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar8.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->ncoll_syms" & (field_expression "(aVar8.mbcset)->ncoll_syms" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37;" (assignment_expression "((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type = (re_context_type)aVar37" (field_expression "((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))->ctx_type" (parenthesized_expression "((anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(bVar25 + 0x80)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x80)" ( (binary_expression "bVar25 + 0x80" identifier + number_literal) ))) )) -> field_identifier) = (cast_expression "(re_context_type)aVar37" ( (type_descriptor "re_context_type" type_identifier) ) identifier)) ;) (expression_statement "iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000);" (assignment_expression "iVar9 = peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000)" identifier = (call_expression "peek_token((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000)" identifier (argument_list "((re_token_t *)apbStack_174,&rStack_160,aVar37.ctx_type | 0x800000)" ( (cast_expression "(re_token_t *)apbStack_174" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&rStack_160" & identifier) , (binary_expression "aVar37.ctx_type | 0x800000" (field_expression "aVar37.ctx_type" identifier . field_identifier) | number_literal) )))) ;) (expression_statement "rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9;" (assignment_expression "rStack_160.cur_idx = (int)(bin_tree_t **)rStack_160.cur_idx + iVar9" (field_expression "rStack_160.cur_idx" identifier . field_identifier) = (binary_expression "(int)(bin_tree_t **)rStack_160.cur_idx + iVar9" (cast_expression "(int)(bin_tree_t **)rStack_160.cur_idx" ( (type_descriptor "int" primitive_type) ) (cast_expression "(bin_tree_t **)rStack_160.cur_idx" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rStack_160.cur_idx" identifier . field_identifier))) + identifier)) ;) (expression_statement "aVar44 = aVar8;" (assignment_expression "aVar44 = aVar8" identifier = identifier) ;) (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)apbStack_174;" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)apbStack_174" (field_expression "aVar35.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)apbStack_174" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) identifier)) ;) (expression_statement "aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178);" (assignment_expression "aVar32.sbcset =\n             (re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178)" (field_expression "aVar32.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)\n             parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178)" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (call_expression "parse_reg_exp(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178)" identifier (argument_list "(&rStack_160,aVar8.sbcset,(re_token_t *)apbStack_174,aVar37.ctx_type,0,\n                           (reg_errcode_t *)&pbStack_178)" ( (pointer_expression "&rStack_160" & identifier) , (field_expression "aVar8.sbcset" identifier . field_identifier) , (cast_expression "(re_token_t *)apbStack_174" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "aVar37.ctx_type" identifier . field_identifier) , number_literal , (cast_expression "(reg_errcode_t *)&pbStack_178" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbStack_178" & identifier)) ))))) ;) (if_statement "if (pbStack_178 == (bin_tree_t *)0x0) {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }" if (parenthesized_expression "(pbStack_178 == (bin_tree_t *)0x0)" ( (binary_expression "pbStack_178 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          aVar35.sbcset = (re_bitset_ptr_t)0x0;\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n          pbVar12 = pbVar38;\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;\n        }" { (expression_statement "iVar9 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar9 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40)" (field_expression "aVar44.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(bVar25 + 0x40)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(bVar25 + 0x40)" ( (binary_expression "bVar25 + 0x40" identifier + number_literal) )))) ;) (expression_statement "pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);" (assignment_expression "pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_)" identifier = (cast_expression "(bin_tree_t *)CONCAT13(2,pbStack_168._1_3_)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT13(2,pbStack_168._1_3_)" identifier (argument_list "(2,pbStack_168._1_3_)" ( number_literal , (field_expression "pbStack_168._1_3_" identifier . field_identifier) ))))) ;) (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar35.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);" (assignment_expression "pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c)" identifier = (call_expression "create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c)" identifier (argument_list "((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)aVar44.mbcset,\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c)" ( (cast_expression "(re_dfa_t *)(bVar25 + 0x38)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x38)" ( (binary_expression "bVar25 + 0x38" identifier + number_literal) ))) , (cast_expression "(bin_tree_t *)aVar44.mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar44.mbcset" identifier . field_identifier)) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)auStack_16c" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar12 = pbVar38;" (assignment_expression "pbVar12 = pbVar38" identifier = identifier) ;) (if_statement "if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) goto LAB_00052400;" if (parenthesized_expression "((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar32.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar32.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00052400;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }" else (compound_statement "{\n          iVar9 = *(int *)(pcVar6 + 0x239fc);\n          if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }\n          pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);\n          pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);\n        }" { (expression_statement "iVar9 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar9 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (if_statement "if ((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0) {\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }" if (parenthesized_expression "((bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar32.sbcset == (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar32.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar32.sbcset" identifier . field_identifier)) == (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n            *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n            goto LAB_000521dc;\n          }" { (expression_statement "aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;" (assignment_expression "aVar32.mbcset = (re_charset_t *)*aVar8.sbcset" (field_expression "aVar32.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)*aVar8.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier)))) ;) (expression_statement "*(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;" (assignment_expression "*(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0" (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x34)" ( (binary_expression "aVar39.idx + 0x34" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000521dc;" goto statement_identifier ;) })) (expression_statement "pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_);" (assignment_expression "pbStack_168 = (bin_tree_t *)CONCAT13(2,pbStack_168._1_3_)" identifier = (cast_expression "(bin_tree_t *)CONCAT13(2,pbStack_168._1_3_)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT13(2,pbStack_168._1_3_)" identifier (argument_list "(2,pbStack_168._1_3_)" ( number_literal , (field_expression "pbStack_168._1_3_" identifier . field_identifier) ))))) ;) (expression_statement "pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c);" (assignment_expression "pbVar38 = create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c)" identifier = (call_expression "create_token_tree((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c)" identifier (argument_list "((re_dfa_t *)(bVar25 + 0x38),(bin_tree_t *)(bVar25 + 0x40),\n                                      (bin_tree_t *)0x0,(re_token_t *)0x0,(re_dfa_t *)auStack_16c)" ( (cast_expression "(re_dfa_t *)(bVar25 + 0x38)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x38)" ( (binary_expression "bVar25 + 0x38" identifier + number_literal) ))) , (cast_expression "(bin_tree_t *)(bVar25 + 0x40)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x40)" ( (binary_expression "bVar25 + 0x40" identifier + number_literal) ))) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)auStack_16c" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40);" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)(bVar25 + 0x40)" (field_expression "aVar44.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(bVar25 + 0x40)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(bVar25 + 0x40)" ( (binary_expression "bVar25 + 0x40" identifier + number_literal) )))) ;) (expression_statement "pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_);" (assignment_expression "pbStack_168 = (bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_)" identifier = (cast_expression "(bin_tree_t *)CONCAT13(0x10,pbStack_168._1_3_)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT13(0x10,pbStack_168._1_3_)" identifier (argument_list "(0x10,pbStack_168._1_3_)" ( number_literal , (field_expression "pbStack_168._1_3_" identifier . field_identifier) ))))) ;) (expression_statement "pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c);" (assignment_expression "pbVar12 = (bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c)" identifier = (cast_expression "(bin_tree_t *)\n                  (*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(iVar9 + 0x63ec))\n                            (bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c)" (parenthesized_expression "(*(code *)(iVar9 + 0x63ec))" ( (pointer_expression "*(code *)(iVar9 + 0x63ec)" * (cast_expression "(code *)(iVar9 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x63ec)" ( (binary_expression "iVar9 + 0x63ec" identifier + number_literal) )))) )) (argument_list "(bVar25 + 0x38,aVar44.sbcset,aVar32.sbcset,pbVar38,auStack_16c)" ( (binary_expression "bVar25 + 0x38" identifier + number_literal) , (field_expression "aVar44.sbcset" identifier . field_identifier) , (field_expression "aVar32.sbcset" identifier . field_identifier) , identifier , identifier ))))) ;) (expression_statement "aVar35 = aVar32;" (assignment_expression "aVar35 = aVar32" identifier = identifier) ;) (labeled_statement "LAB_00052400:\n        aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;" statement_identifier : (expression_statement "aVar3.sbcset = (re_bitset_ptr_t)auStack_16c;" (assignment_expression "aVar3.sbcset = (re_bitset_ptr_t)auStack_16c" (field_expression "aVar3.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)auStack_16c" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) identifier)) ;)) (expression_statement "aVar32.idx = *aVar8.sbcset;" (assignment_expression "aVar32.idx = *aVar8.sbcset" (field_expression "aVar32.idx" identifier . field_identifier) = (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier))) ;) (if_statement "if ((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)) {\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }\n        else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }" if (parenthesized_expression "((pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0))" ( (binary_expression "(pbVar38 == (bin_tree_t *)0x0) ||\n           (pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)" (parenthesized_expression "(pbVar38 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0)" ( (comma_expression "pcVar47 = *(code **)(pcVar6 + 0x23c08), pbVar12 == (bin_tree_t *)0x0" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) , (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          *(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;\n          pbStack_178 = (bin_tree_t *)0xc;\n        }" { (expression_statement "*(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0;" (assignment_expression "*(bin_tree_t **)(aVar39.idx + 0x34) = (bin_tree_t *)0x0" (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x34)" ( (binary_expression "aVar39.idx + 0x34" (field_expression "aVar39.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 "pbStack_178 = (bin_tree_t *)0xc;" (assignment_expression "pbStack_178 = (bin_tree_t *)0xc" identifier = (cast_expression "(bin_tree_t *)0xc" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }" else (compound_statement "{\n          aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;\n          *(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;\n          pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;\n          aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);\n          ((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;\n          iVar9 = aVar44.idx * 0xc;\n          pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);\n          pcVar47 = *(code **)(pcVar6 + 0x23c08);\n          (((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;\n          prVar17 = (re_node_set *)(*pcVar47)(iVar9);\n          (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;\n          if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;\n        }" { (expression_statement "aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent;" (assignment_expression "aVar44 = (anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)->parent" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                   ((bin_tree_t *)&(aVar32.mbcset)->range_starts)" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((bin_tree_t *)&(aVar32.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar32.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->range_starts" & (field_expression "(aVar32.mbcset)->range_starts" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ))) -> field_identifier)) ;) (expression_statement "*(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12;" (assignment_expression "*(bin_tree_t **)(aVar39.idx + 0x34) = pbVar12" (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x34)" ( (binary_expression "aVar39.idx + 0x34" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2);" (assignment_expression "pbVar38 = (bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2)" identifier = (cast_expression "(bin_tree_t *)(*pcVar47)(aVar44.ctx_type << 2)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar47)(aVar44.ctx_type << 2)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(aVar44.ctx_type << 2)" ( (binary_expression "aVar44.ctx_type << 2" (field_expression "aVar44.ctx_type" identifier . field_identifier) << number_literal) ))))) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "(aVar32.mbcset)->char_classes = (wctype_t *)pbVar38;" (assignment_expression "(aVar32.mbcset)->char_classes = (wctype_t *)pbVar38" (field_expression "(aVar32.mbcset)->char_classes" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wctype_t *)pbVar38" ( (type_descriptor "wctype_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2);" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2)" (field_expression "aVar35.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*pcVar47)(aVar44.ctx_type << 2)" (call_expression "(re_bitset_ptr_t)(*pcVar47)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) ))) (argument_list "(aVar44.ctx_type << 2)" ( (binary_expression "aVar44.ctx_type << 2" (field_expression "aVar44.ctx_type" identifier . field_identifier) << number_literal) )))) ;) (expression_statement "((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35\n          ;" (assignment_expression "((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset = (re_bitset_ptr_t)aVar35" (field_expression "((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))->sbcset" (parenthesized_expression "((anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(aVar32.idx + 0x10)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x10)" ( (binary_expression "aVar32.idx + 0x10" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(re_bitset_ptr_t)aVar35" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) identifier)) ;) (expression_statement "iVar9 = aVar44.idx * 0xc;" (assignment_expression "iVar9 = aVar44.idx * 0xc" identifier = (binary_expression "aVar44.idx * 0xc" (field_expression "aVar44.idx" identifier . field_identifier) * number_literal)) ;) (expression_statement "pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9);" (assignment_expression "pbVar16 = (re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9)" identifier = (call_expression "(re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))(iVar9)" (call_expression "(re_bitset_ptr_t)(**(code **)(pcVar6 + 0x23c08))" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ))) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "(((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16;" (assignment_expression "(((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset = pbVar16" (field_expression "(((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr).sbcset" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->nmbchars)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->nmbchars)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->nmbchars" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->nmbchars" & (field_expression "(aVar32.mbcset)->nmbchars" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "prVar17 = (re_node_set *)(*pcVar47)(iVar9);" (assignment_expression "prVar17 = (re_node_set *)(*pcVar47)(iVar9)" identifier = (cast_expression "(re_node_set *)(*pcVar47)(iVar9)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar47)(iVar9)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17;" (assignment_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset = (re_bitset_ptr_t)prVar17" (field_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).sbcset" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->ncoll_syms" & (field_expression "(aVar32.mbcset)->ncoll_syms" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(re_bitset_ptr_t)prVar17" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) identifier)) ;) (if_statement "if ((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)) {\n            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" if (parenthesized_expression "((((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0))" ( (binary_expression "(((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)) && (prVar17 != (re_node_set *)0x0)" (parenthesized_expression "(((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0))" ( (binary_expression "((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)) &&\n              (pbVar16 != (re_bitset_ptr_t)0x0)" (parenthesized_expression "((pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0))" ( (binary_expression "(pbVar38 != (bin_tree_t *)0x0) &&\n               ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)" (parenthesized_expression "(pbVar38 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar35.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar35.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(pbVar16 != (re_bitset_ptr_t)0x0)" ( (binary_expression "pbVar16 != (re_bitset_ptr_t)0x0" identifier != (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ))) )) && (parenthesized_expression "(prVar17 != (re_node_set *)0x0)" ( (binary_expression "prVar17 != (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            pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;\n            pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);\n            ((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;\n            if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }\n            aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            aVar35 = aVar8;\n            pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);\n            if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" { (expression_statement "pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type;" (assignment_expression "pbVar12 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type" identifier = (cast_expression "(bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).ctx_type" (parenthesized_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar8.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->ncoll_syms" & (field_expression "(aVar8.mbcset)->ncoll_syms" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2);" (assignment_expression "pbVar38 = (bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2)" identifier = (cast_expression "(bin_tree_t *)(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)pbVar12 << 2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "((int)pbVar12 << 2)" ( (binary_expression "(int)pbVar12 << 2" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38;" (assignment_expression "((bin_tree_t *)(aVar32.idx + 0x84))->parent = pbVar38" (field_expression "((bin_tree_t *)(aVar32.idx + 0x84))->parent" (parenthesized_expression "((bin_tree_t *)(aVar32.idx + 0x84))" ( (cast_expression "(bin_tree_t *)(aVar32.idx + 0x84)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x84)" ( (binary_expression "aVar32.idx + 0x84" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = identifier) ;) (if_statement "if (pbVar38 != (bin_tree_t *)0x0) {\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }" if (parenthesized_expression "(pbVar38 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar29 = (bin_tree_t *)0x0;\n              if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }\n              preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);\n              pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;\n              if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }\n            }" { (expression_statement "pbVar29 = (bin_tree_t *)0x0;" (assignment_expression "pbVar29 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar12 != (bin_tree_t *)0x0) {\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }" if (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);\n              }" { (do_statement "do {\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                } while (pbVar29 != pbVar12);" do (compound_statement "{\n                  pbVar38->parent = pbVar29;\n                  pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);\n                  pbVar38 = (bin_tree_t *)&pbVar38->left;\n                }" { (expression_statement "pbVar38->parent = pbVar29;" (assignment_expression "pbVar38->parent = pbVar29" (field_expression "pbVar38->parent" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1);" (assignment_expression "pbVar29 = (bin_tree_t *)((int)&pbVar29->parent + 1)" identifier = (cast_expression "(bin_tree_t *)((int)&pbVar29->parent + 1)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar29->parent + 1)" ( (binary_expression "(int)&pbVar29->parent + 1" (cast_expression "(int)&pbVar29->parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar29->parent" & (field_expression "pbVar29->parent" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pbVar38 = (bin_tree_t *)&pbVar38->left;" (assignment_expression "pbVar38 = (bin_tree_t *)&pbVar38->left" identifier = (cast_expression "(bin_tree_t *)&pbVar38->left" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar38->left" & (field_expression "pbVar38->left" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pbVar29 != pbVar12)" ( (binary_expression "pbVar29 != pbVar12" identifier != identifier) )) ;) })) (expression_statement "preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset);" (call_expression "preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset)" identifier (argument_list "((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4),aVar32.sbcset)" ( (cast_expression "(bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x34))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x34))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x34)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x34)" ( (binary_expression "aVar32.idx + 0x34" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(pcVar6 + 0x239fc) + 0x54d4)" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x54d4)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x54d4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) ))) , (field_expression "aVar32.sbcset" identifier . field_identifier) ))) ;) (expression_statement "pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset;" (assignment_expression "pbVar38 = (bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" identifier = (cast_expression "(bin_tree_t *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" (parenthesized_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar8.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->ncoll_syms" & (field_expression "(aVar8.mbcset)->ncoll_syms" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if (pbVar38 == (bin_tree_t *)0x0) {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }\n              else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }" if (parenthesized_expression "(pbVar38 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);\n                ((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;\n              }" { (expression_statement "pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;" (assignment_expression "pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent" identifier = (field_expression "((bin_tree_t *)(aVar32.idx + 0x84))->parent" (parenthesized_expression "((bin_tree_t *)(aVar32.idx + 0x84))" ( (cast_expression "(bin_tree_t *)(aVar32.idx + 0x84)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x84)" ( (binary_expression "aVar32.idx + 0x84" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) ;) (labeled_statement "LAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(pbVar12);" statement_identifier : (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(pbVar12);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(pbVar12)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "(pbVar12)" ( identifier ))) ;)) (expression_statement "((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0;" (assignment_expression "((bin_tree_t *)(aVar32.idx + 0x84))->parent = (bin_tree_t *)0x0" (field_expression "((bin_tree_t *)(aVar32.idx + 0x84))->parent" (parenthesized_expression "((bin_tree_t *)(aVar32.idx + 0x84))" ( (cast_expression "(bin_tree_t *)(aVar32.idx + 0x84)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x84)" ( (binary_expression "aVar32.idx + 0x84" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }" else (compound_statement "{\n                pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;\n                if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }\n              }" { (expression_statement "pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent;" (assignment_expression "pbVar12 = ((bin_tree_t *)(aVar32.idx + 0x84))->parent" identifier = (field_expression "((bin_tree_t *)(aVar32.idx + 0x84))->parent" (parenthesized_expression "((bin_tree_t *)(aVar32.idx + 0x84))" ( (cast_expression "(bin_tree_t *)(aVar32.idx + 0x84)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x84)" ( (binary_expression "aVar32.idx + 0x84" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) ;) (if_statement "if (pbVar12->parent == (bin_tree_t *)0x0) {\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }" if (parenthesized_expression "(pbVar12->parent == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12->parent == (bin_tree_t *)0x0" (field_expression "pbVar12->parent" identifier -> field_identifier) == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pbVar34 = (bin_tree_t *)0x0;\n                  pbVar29 = pbVar12;\n                  do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);\n                }" { (expression_statement "pbVar34 = (bin_tree_t *)0x0;" (assignment_expression "pbVar34 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar29 = pbVar12;" (assignment_expression "pbVar29 = pbVar12" identifier = identifier) ;) (do_statement "do {\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  } while (*(bin_tree_t **)pbVar29 == pbVar34);" do (compound_statement "{\n                    pbVar29 = (bin_tree_t *)&pbVar29->left;\n                    pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                    if (pbVar34 == pbVar38) goto LAB_00052530;\n                  }" { (expression_statement "pbVar29 = (bin_tree_t *)&pbVar29->left;" (assignment_expression "pbVar29 = (bin_tree_t *)&pbVar29->left" identifier = (cast_expression "(bin_tree_t *)&pbVar29->left" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar29->left" & (field_expression "pbVar29->left" identifier -> field_identifier)))) ;) (expression_statement "pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);" (assignment_expression "pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1)" identifier = (cast_expression "(bin_tree_t *)((int)&pbVar34->parent + 1)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar34->parent + 1)" ( (binary_expression "(int)&pbVar34->parent + 1" (cast_expression "(int)&pbVar34->parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar34->parent" & (field_expression "pbVar34->parent" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (pbVar34 == pbVar38) goto LAB_00052530;" if (parenthesized_expression "(pbVar34 == pbVar38)" ( (binary_expression "pbVar34 == pbVar38" identifier == identifier) )) (goto_statement "goto LAB_00052530;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(bin_tree_t **)pbVar29 == pbVar34)" ( (binary_expression "*(bin_tree_t **)pbVar29 == pbVar34" (pointer_expression "*(bin_tree_t **)pbVar29" * (cast_expression "(bin_tree_t **)pbVar29" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == identifier) )) ;) })) }))) })) (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" (field_expression "aVar44.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x68f4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "aVar35 = aVar8;" (assignment_expression "aVar35 = aVar8" identifier = identifier) ;) (expression_statement "pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset);" (assignment_expression "pbVar12 = (bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset)" identifier = (cast_expression "(bin_tree_t *)\n                      postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset)" identifier (argument_list "((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                aVar8.sbcset)" ( (cast_expression "(bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x34))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x34))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x34)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x34)" ( (binary_expression "aVar32.idx + 0x34" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar44.sbcset" identifier . field_identifier)) , (field_expression "aVar8.sbcset" identifier . field_identifier) ))))) ;) (if_statement "if (pbVar12 == (bin_tree_t *)0x0) {\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" if (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              aVar35.idx = aVar32.idx;\n              pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);\n              if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" { (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734);" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" (field_expression "aVar44.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(pcVar6 + 0x23a54) + -0x6734)" ( (binary_expression "*(int *)(pcVar6 + 0x23a54) + -0x6734" (pointer_expression "*(int *)(pcVar6 + 0x23a54)" * (cast_expression "(int *)(pcVar6 + 0x23a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23a54)" ( (binary_expression "pcVar6 + 0x23a54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "aVar35.idx = aVar32.idx;" (assignment_expression "aVar35.idx = aVar32.idx" (field_expression "aVar35.idx" identifier . field_identifier) = (field_expression "aVar32.idx" identifier . field_identifier)) ;) (expression_statement "pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset);" (assignment_expression "pbVar12 = (bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset)" identifier = (cast_expression "(bin_tree_t *)\n                        postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "postorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset)" identifier (argument_list "((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                  (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                  aVar32.sbcset)" ( (cast_expression "(bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x34))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x34))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x34)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x34)" ( (binary_expression "aVar32.idx + 0x34" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar44.sbcset" identifier . field_identifier)) , (field_expression "aVar32.sbcset" identifier . field_identifier) ))))) ;) (if_statement "if (pbVar12 == (bin_tree_t *)0x0) {\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" if (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);\n                aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                aVar35.idx = aVar32.idx;\n                pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);\n                if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" { (expression_statement "preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset);" (call_expression "preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset)" identifier (argument_list "((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                         (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)),aVar32.sbcset)" ( (cast_expression "(bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x34))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x34))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x34)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x34)" ( (binary_expression "aVar32.idx + 0x34" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                         (&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc))" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc))" ( (binary_expression "&DAT_000055a0 + *(int *)(pcVar6 + 0x239fc)" (pointer_expression "&DAT_000055a0" & identifier) + (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ))) , (field_expression "aVar32.sbcset" identifier . field_identifier) ))) ;) (expression_statement "aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);" (assignment_expression "aVar44.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" (field_expression "aVar44.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x4ecc" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "aVar35.idx = aVar32.idx;" (assignment_expression "aVar35.idx = aVar32.idx" (field_expression "aVar35.idx" identifier . field_identifier) = (field_expression "aVar32.idx" identifier . field_identifier)) ;) (expression_statement "pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset);" (assignment_expression "pbVar12 = (bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset)" identifier = (cast_expression "(bin_tree_t *)\n                          preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "preorder((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset)" identifier (argument_list "((bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset,\n                                   (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset,\n                                   aVar32.sbcset)" ( (cast_expression "(bin_tree_t *)(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).mbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x34))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x34))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x34)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x34)" ( (binary_expression "aVar32.idx + 0x34" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar44.sbcset" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar44.sbcset" identifier . field_identifier)) , (field_expression "aVar32.sbcset" identifier . field_identifier) ))))) ;) (if_statement "if (pbVar12 == (bin_tree_t *)0x0) {\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" if (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar9 = *(int *)(pcVar6 + 0x239fc);\n                  aVar43.sbcset = (re_bitset_ptr_t)0x0;\n                  pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;\nLAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;\n                  if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;\nLAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" { (expression_statement "iVar9 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar9 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "aVar43.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar43.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar43.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends" identifier = (cast_expression "(bin_tree_storage_t *)(aVar32.mbcset)->range_ends" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->range_ends" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (labeled_statement "LAB_000525ec:\n                  if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;" statement_identifier : (if_statement "if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) goto LAB_00052620;" if (parenthesized_expression "(pbVar33 == (bin_tree_storage_t *)aVar43.sbcset)" ( (binary_expression "pbVar33 == (bin_tree_storage_t *)aVar43.sbcset" identifier == (cast_expression "(bin_tree_storage_t *)aVar43.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar43.sbcset" identifier . field_identifier))) )) (goto_statement "goto LAB_00052620;" goto statement_identifier ;))) (labeled_statement "LAB_000525f4:\n                  iVar10 = aVar43.idx * 0xc;" statement_identifier : (expression_statement "iVar10 = aVar43.idx * 0xc;" (assignment_expression "iVar10 = aVar43.idx * 0xc" identifier = (binary_expression "aVar43.idx * 0xc" (field_expression "aVar43.idx" identifier . field_identifier) * number_literal)) ;)) (if_statement "if (((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0) goto LAB_00052650;" if (parenthesized_expression "(((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0)" ( (binary_expression "((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem == 0" (field_expression "((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx].nelem" (subscript_expression "((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)\n                      [aVar43.idx]" (parenthesized_expression "((re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx)" ( (cast_expression "(re_node_set *)(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).idx" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->ncoll_syms" & (field_expression "(aVar32.mbcset)->ncoll_syms" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier)) )) [ (field_expression "aVar43.idx" identifier . field_identifier) ]) . field_identifier) == number_literal) )) (goto_statement "goto LAB_00052650;" goto statement_identifier ;)) (labeled_statement "LAB_00052614:\n                  aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);" statement_identifier : (expression_statement "aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);" (assignment_expression "aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1)" (field_expression "aVar43.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)&(aVar43.mbcset)->mbchars + 1)" ( (binary_expression "(int)&(aVar43.mbcset)->mbchars + 1" (cast_expression "(int)&(aVar43.mbcset)->mbchars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(aVar43.mbcset)->mbchars" & (field_expression "(aVar43.mbcset)->mbchars" (parenthesized_expression "(aVar43.mbcset)" ( (field_expression "aVar43.mbcset" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) ;)) (if_statement "if (pbVar33 == (bin_tree_storage_t *)aVar43.sbcset) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }" if (parenthesized_expression "(pbVar33 == (bin_tree_storage_t *)aVar43.sbcset)" ( (binary_expression "pbVar33 == (bin_tree_storage_t *)aVar43.sbcset" identifier == (cast_expression "(bin_tree_storage_t *)aVar43.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar43.sbcset" identifier . field_identifier))) )) (compound_statement "{\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;\n                    prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);\n                    (aVar32.mbcset)->nequiv_classes = (Idx)prVar17;\n                    if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;\n                    goto LAB_00052c64;\n                  }" { (labeled_statement "LAB_00052620:\n                    if (bVar1) goto LAB_00052628;" statement_identifier : (if_statement "if (bVar1) goto LAB_00052628;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00052628;" goto statement_identifier ;))) (if_statement "if ((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))\n                    goto LAB_00052998;" if (parenthesized_expression "((((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0))" ( (binary_expression "(((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)) &&\n                       (*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0)" (parenthesized_expression "(((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c))" ( (binary_expression "((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)) ||\n                        (-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)" (parenthesized_expression "((((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0))" ( (binary_expression "(((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0) ||\n                         ((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)" (parenthesized_expression "(((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0)" ( (binary_expression "((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000) != 0" (parenthesized_expression "((uint)(aVar8.mbcset)->nequiv_classes & 0x8000000)" ( (binary_expression "(uint)(aVar8.mbcset)->nequiv_classes & 0x8000000" (field_expression "(uint)(aVar8.mbcset)->nequiv_classes" (call_expression "(uint)(aVar8.mbcset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) ))) -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0)" ( (binary_expression "(re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset\n                          == (re_node_set *)0x0" (cast_expression "(re_node_set *)(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr).sbcset" (parenthesized_expression "(((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar8.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar8.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->ncoll_syms" & (field_expression "(aVar8.mbcset)->ncoll_syms" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_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 "(-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c)" ( (binary_expression "-1 < (char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c" number_literal < (cast_expression "(char)(((re_token_t *)(aVar32.idx + 0x58))->opr).c" ( (type_descriptor "char" primitive_type) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x58)" ( (binary_expression "aVar32.idx + 0x58" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ))) )) && (parenthesized_expression "(*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0)" ( (binary_expression "*(bin_tree_t **)(aVar32.idx + 0x4c) == (bin_tree_t *)0x0" (pointer_expression "*(bin_tree_t **)(aVar32.idx + 0x4c)" * (cast_expression "(bin_tree_t **)(aVar32.idx + 0x4c)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar32.idx + 0x4c)" ( (binary_expression "aVar32.idx + 0x4c" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) )))) == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00052998;" goto statement_identifier ;)) (expression_statement "prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc);" (assignment_expression "prVar17 = (re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc)" identifier = (cast_expression "(re_node_set *)(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))(aVar43.idx * 0xc)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "(aVar43.idx * 0xc)" ( (binary_expression "aVar43.idx * 0xc" (field_expression "aVar43.idx" identifier . field_identifier) * number_literal) ))))) ;) (expression_statement "(aVar32.mbcset)->nequiv_classes = (Idx)prVar17;" (assignment_expression "(aVar32.mbcset)->nequiv_classes = (Idx)prVar17" (field_expression "(aVar32.mbcset)->nequiv_classes" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Idx)prVar17" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (prVar17 != (re_node_set *)0x0) {\n                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" if (parenthesized_expression "(prVar17 != (re_node_set *)0x0)" ( (binary_expression "prVar17 != (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                      pbVar33 = (bin_tree_storage_t *)0x0;\n                      if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;\n                      if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }\n                      prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;\n                      pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;\n                      *(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;\n                      aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);\n                      pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;\n                      pbVar38 = pbVar12;\n                      apbStack_174[0] = pbVar12;\n                      if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }\nLAB_00052abc:\n                      bVar25 = *aVar8.sbcset;\n                      piVar24 = *(int **)(bVar25 + 0x38);\n                      pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      pbStack_178 = pbVar38;\n                      if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      *(undefined4 *)(bVar25 + 0x40) = 0x1f;\n                      *(undefined4 *)(bVar25 + 0x38) = 0;\n                      *(undefined4 *)(bVar25 + 0x34) = 0;\n                      (*pcVar47)(*(undefined4 *)(bVar25 + 0x10));\n                      *(undefined4 *)(bVar25 + 0x10) = 0;\n                      re_string_destruct(&rStack_160);\n                      pbVar38 = pbStack_178;\n                      if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" { (expression_statement "pbVar33 = (bin_tree_storage_t *)0x0;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)0x0" identifier = (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0) {\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" if (parenthesized_expression "((bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar43.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar43.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar43.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        iVar9 = 0;\n                        while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }\n                        iVar9 = *(int *)(pcVar6 + 0x239fc);\n                        aVar35.sbcset = (re_bitset_ptr_t)0x0;\n                        if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                          puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);\n                          pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);\n                          *puVar15 = 0;\n                          puVar15[1] = 0;\n                          puVar15[2] = 0;\n                          puVar15[3] = 0;\n                          puVar15[4] = 0;\n                          puVar15[5] = 0;\n                          puVar15[6] = 0;\n                          puVar15[7] = 0;\n                          puVar15[8] = 0;\n                          puVar15[9] = 0;\n                          puVar15[10] = 0;\n                          puVar15[0xb] = 0;\n                          pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                          iVar9 = iVar9 + 0xc;\n                          if (pbVar19 <= pbVar33) break;\n                          prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;\n                        }" { (expression_statement "puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9);" (assignment_expression "puVar15 = (undefined1 *)((int)&prVar17->alloc + iVar9)" identifier = (cast_expression "(undefined1 *)((int)&prVar17->alloc + iVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar17->alloc + iVar9)" ( (binary_expression "(int)&prVar17->alloc + iVar9" (cast_expression "(int)&prVar17->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar17->alloc" & (field_expression "prVar17->alloc" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1);" (assignment_expression "pbVar33 = (bin_tree_storage_t *)((int)&pbVar33->next + 1)" identifier = (cast_expression "(bin_tree_storage_t *)((int)&pbVar33->next + 1)" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar33->next + 1)" ( (binary_expression "(int)&pbVar33->next + 1" (cast_expression "(int)&pbVar33->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar33->next" & (field_expression "pbVar33->next" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "puVar15[1] = 0;" (assignment_expression "puVar15[1] = 0" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[2] = 0;" (assignment_expression "puVar15[2] = 0" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[3] = 0;" (assignment_expression "puVar15[3] = 0" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[4] = 0;" (assignment_expression "puVar15[4] = 0" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[5] = 0;" (assignment_expression "puVar15[5] = 0" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[7] = 0;" (assignment_expression "puVar15[7] = 0" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[8] = 0;" (assignment_expression "puVar15[8] = 0" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[9] = 0;" (assignment_expression "puVar15[9] = 0" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[10] = 0;" (assignment_expression "puVar15[10] = 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[0xb] = 0;" (assignment_expression "puVar15[0xb] = 0" (subscript_expression "puVar15[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;" (assignment_expression "pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends" identifier = (cast_expression "(bin_tree_storage_t *)(aVar32.mbcset)->range_ends" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->range_ends" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "iVar9 = iVar9 + 0xc;" (assignment_expression "iVar9 = iVar9 + 0xc" identifier = (binary_expression "iVar9 + 0xc" identifier + number_literal)) ;) (if_statement "if (pbVar19 <= pbVar33) break;" if (parenthesized_expression "(pbVar19 <= pbVar33)" ( (binary_expression "pbVar19 <= pbVar33" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes;" (assignment_expression "prVar17 = (re_node_set *)(aVar32.mbcset)->nequiv_classes" identifier = (cast_expression "(re_node_set *)(aVar32.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->nequiv_classes" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) })) (expression_statement "iVar9 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar9 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "aVar35.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar35.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar35.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (if_statement "if (pbVar19 != (bin_tree_storage_t *)0x0) {\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }" if (parenthesized_expression "(pbVar19 != (bin_tree_storage_t *)0x0)" ( (binary_expression "pbVar19 != (bin_tree_storage_t *)0x0" identifier != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                          aStack_188.sbcset = (re_bitset_ptr_t)0x0;\n                          iStack_190 = 0;\n                          while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }\n                          iVar10 = 0;\n                          aVar43 = aVar35;\n                          while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }\n                          pbVar12 = (bin_tree_t *)0xc;\n                          goto LAB_000521d4;\n                        }" { (expression_statement "prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;" (assignment_expression "prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset" identifier = (field_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->ncoll_syms" & (field_expression "(aVar32.mbcset)->ncoll_syms" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "aStack_188.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aStack_188.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aStack_188.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "iStack_190 = 0;" (assignment_expression "iStack_190 = 0" identifier = number_literal) ;) (while_statement "while (aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1) {\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }" while (parenthesized_expression "(aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1)" ( (comma_expression "aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset,\n                                *(int *)((int)&prVar31->range_starts + iStack_190) < 1" (assignment_expression "aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))->sbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                          ((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)\n                                          ((int)&prVar31->range_ends + iStack_190)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar31->range_ends + iStack_190)" ( (binary_expression "(int)&prVar31->range_ends + iStack_190" (cast_expression "(int)&prVar31->range_ends" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar31->range_ends" & (field_expression "prVar31->range_ends" identifier -> field_identifier))) + identifier) ))) ))) -> field_identifier)) , (binary_expression "*(int *)((int)&prVar31->range_starts + iStack_190) < 1" (pointer_expression "*(int *)((int)&prVar31->range_starts + iStack_190)" * (cast_expression "(int *)((int)&prVar31->range_starts + iStack_190)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar31->range_starts + iStack_190)" ( (binary_expression "(int)&prVar31->range_starts + iStack_190" (cast_expression "(int)&prVar31->range_starts" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar31->range_starts" & (field_expression "prVar31->range_starts" identifier -> field_identifier))) + identifier) )))) < number_literal)) )) (compound_statement "{\nLAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;\n                          }" { (labeled_statement "LAB_00052974:\n                            aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);" statement_identifier : (expression_statement "aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1);" (assignment_expression "aStack_188.sbcset =\n                                 (re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1)" (field_expression "aStack_188.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)((int)&(aStack_188.mbcset)->mbchars + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)&(aStack_188.mbcset)->mbchars + 1)" ( (binary_expression "(int)&(aStack_188.mbcset)->mbchars + 1" (cast_expression "(int)&(aStack_188.mbcset)->mbchars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(aStack_188.mbcset)->mbchars" & (field_expression "(aStack_188.mbcset)->mbchars" (parenthesized_expression "(aStack_188.mbcset)" ( (field_expression "aStack_188.mbcset" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) ;)) (expression_statement "iStack_190 = iStack_190 + 0xc;" (assignment_expression "iStack_190 = iStack_190 + 0xc" identifier = (binary_expression "iStack_190 + 0xc" identifier + number_literal)) ;) (if_statement "if (pbVar19 <= aStack_188.sbcset) goto LAB_00052998;" if (parenthesized_expression "(pbVar19 <= aStack_188.sbcset)" ( (binary_expression "pbVar19 <= aStack_188.sbcset" identifier <= (field_expression "aStack_188.sbcset" identifier . field_identifier)) )) (goto_statement "goto LAB_00052998;" goto statement_identifier ;)) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "aVar43 = aVar35;" (assignment_expression "aVar43 = aVar35" identifier = identifier) ;) (while_statement "while (aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0) {\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }" while (parenthesized_expression "(aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0)" ( (comma_expression "aVar44 = aStack_188,\n                                iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0" (assignment_expression "aVar44 = aStack_188" identifier = identifier) , (comma_expression "iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset), iVar11 != 0" (assignment_expression "iVar11 = (*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset)" identifier = (call_expression "(*(code *)(iVar9 + 0x3360))\n                                                   ((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset)" (parenthesized_expression "(*(code *)(iVar9 + 0x3360))" ( (pointer_expression "*(code *)(iVar9 + 0x3360)" * (cast_expression "(code *)(iVar9 + 0x3360)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3360)" ( (binary_expression "iVar9 + 0x3360" identifier + number_literal) )))) )) (argument_list "((re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset)" ( (binary_expression "(re_node_set *)(aVar32.mbcset)->nequiv_classes +\n                                                    *aVar43.sbcset" (cast_expression "(re_node_set *)(aVar32.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->nequiv_classes" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier)) + (pointer_expression "*aVar43.sbcset" * (field_expression "aVar43.sbcset" identifier . field_identifier))) )))) , (binary_expression "iVar11 != 0" identifier != number_literal))) )) (compound_statement "{\n                            prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;\n                            iVar10 = iVar10 + 1;\n                            aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;\n                            if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }\n                          }" { (expression_statement "prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset;" (assignment_expression "prVar31 = (((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset" identifier = (field_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->ncoll_syms" & (field_expression "(aVar32.mbcset)->ncoll_syms" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts;" (assignment_expression "aVar43.sbcset = (re_bitset_ptr_t)&(aVar43.mbcset)->range_starts" (field_expression "aVar43.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&(aVar43.mbcset)->range_starts" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & (field_expression "(aVar43.mbcset)->range_starts" (parenthesized_expression "(aVar43.mbcset)" ( (field_expression "aVar43.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (if_statement "if (*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10) {\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }" if (parenthesized_expression "(*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10)" ( (binary_expression "*(int *)((int)&prVar31->range_starts + iStack_190) <= iVar10" (pointer_expression "*(int *)((int)&prVar31->range_starts + iStack_190)" * (cast_expression "(int *)((int)&prVar31->range_starts + iStack_190)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar31->range_starts + iStack_190)" ( (binary_expression "(int)&prVar31->range_starts + iStack_190" (cast_expression "(int)&prVar31->range_starts" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar31->range_starts" & (field_expression "prVar31->range_starts" identifier -> field_identifier))) + identifier) )))) <= identifier) )) (compound_statement "{\n                              pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n                              goto LAB_00052974;\n                            }" { (expression_statement "pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;" (assignment_expression "pbVar19 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends" identifier = (cast_expression "(bin_tree_storage_t *)(aVar32.mbcset)->range_ends" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->range_ends" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (goto_statement "goto LAB_00052974;" goto statement_identifier ;) })) })) (expression_statement "pbVar12 = (bin_tree_t *)0xc;" (assignment_expression "pbVar12 = (bin_tree_t *)0xc" identifier = (cast_expression "(bin_tree_t *)0xc" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00052998:\n                      pbStack_178 = (bin_tree_t *)0x0;" statement_identifier : (expression_statement "pbStack_178 = (bin_tree_t *)0x0;" (assignment_expression "pbStack_178 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)) {\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }" if (parenthesized_expression "(((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0))" ( (binary_expression "((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)) &&\n                         ((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)" (parenthesized_expression "((((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0))" ( (binary_expression "(((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0) &&\n                          (rVar42 == 0)" (parenthesized_expression "(((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0)" ( (binary_expression "((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20) != 0" (parenthesized_expression "((((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20)" ( (binary_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c & 0x20" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(rVar42 == 0)" ( (binary_expression "rVar42 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "((bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0)" ( (binary_expression "(bin_tree_t *)(aVar8.mbcset)->nmbchars == (bin_tree_t *)0x0" (cast_expression "(bin_tree_t *)(aVar8.mbcset)->nmbchars" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar8.mbcset)->nmbchars" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier)) == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                        aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;\n                        if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;\n                        *(int *)(aVar39.idx + 0x5c) = 1;\n                        (((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;\n                      }" { (expression_statement "aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends;" (assignment_expression "aVar35 = (anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)->range_ends" (call_expression "(anon_union_4_5_a39f51ca_for_opr)(aVar39.mbcset)" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) ))) -> field_identifier)) ;) (if_statement "if ((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0) {\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" if (parenthesized_expression "((bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0)" ( (binary_expression "(bin_tree_storage_t *)aVar35.sbcset != (bin_tree_storage_t *)0x0" (cast_expression "(bin_tree_storage_t *)aVar35.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar35.sbcset" identifier . field_identifier)) != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);\n                          if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" { (expression_statement "aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);" (assignment_expression "aVar32.sbcset = (re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" (field_expression "aVar32.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2fcc" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd);" (assignment_expression "pattern = (char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd)" identifier = (cast_expression "(char *)(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(byte *)(*aVar39.sbcset + 4) < 0xd)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(byte *)(*aVar39.sbcset + 4) < 0xd)" ( (binary_expression "*(byte *)(*aVar39.sbcset + 4) < 0xd" (pointer_expression "*(byte *)(*aVar39.sbcset + 4)" * (cast_expression "(byte *)(*aVar39.sbcset + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*aVar39.sbcset + 4)" ( (binary_expression "*aVar39.sbcset + 4" (pointer_expression "*aVar39.sbcset" * (field_expression "aVar39.sbcset" identifier . field_identifier)) + number_literal) )))) < number_literal) ))))) ;) (if_statement "if (pattern != (char *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }" if (parenthesized_expression "(pattern != (char *)0x0)" ( (binary_expression "pattern != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                            pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();\n                            return pbVar38;\n                          }" { comment comment (expression_statement "pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))();" (assignment_expression "pbVar38 = (bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))()" identifier = (cast_expression "(bin_tree_t *)\n                                      (*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))()" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))()" (parenthesized_expression "(*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c))" ( (pointer_expression "*(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c)" * (parenthesized_expression "(pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c)" ( (binary_expression "pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)] +\n                                                  0x2b65c" (binary_expression "pcVar6 + aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)]" identifier + (subscript_expression "aVar32.sbcset[*(byte *)(*aVar39.sbcset + 4)]" (field_expression "aVar32.sbcset" identifier . field_identifier) [ (pointer_expression "*(byte *)(*aVar39.sbcset + 4)" * (cast_expression "(byte *)(*aVar39.sbcset + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*aVar39.sbcset + 4)" ( (binary_expression "*aVar39.sbcset + 4" (pointer_expression "*aVar39.sbcset" * (field_expression "aVar39.sbcset" identifier . field_identifier)) + number_literal) )))) ])) + number_literal) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar38;" return identifier ;) })) (goto_statement "goto switchD_00052dc0_caseD_0;" goto statement_identifier ;) })) (expression_statement "bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c;" (assignment_expression "bVar23 = (((re_token_t *)(aVar39.idx + 0x58))->opr).c" identifier = (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(int *)(aVar39.idx + 0x5c) = 1;" (assignment_expression "*(int *)(aVar39.idx + 0x5c) = 1" (pointer_expression "*(int *)(aVar39.idx + 0x5c)" * (cast_expression "(int *)(aVar39.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x5c)" ( (binary_expression "aVar39.idx + 0x5c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6;" (assignment_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c =\n                             bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6" (field_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr).c" (parenthesized_expression "(((re_token_t *)(aVar39.idx + 0x58))->opr)" ( (field_expression "((re_token_t *)(aVar39.idx + 0x58))->opr" (parenthesized_expression "((re_token_t *)(aVar39.idx + 0x58))" ( (cast_expression "(re_token_t *)(aVar39.idx + 0x58)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x58)" ( (binary_expression "aVar39.idx + 0x58" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (binary_expression "bVar23 & 0x9f | (0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6" (binary_expression "bVar23 & 0x9f" identifier & number_literal) | (binary_expression "(0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) << 6" (parenthesized_expression "(0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c))" ( (binary_expression "0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)" number_literal < (cast_expression "(int)*(bin_tree_t **)(aVar39.idx + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x4c)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x4c)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x4c)" ( (binary_expression "aVar39.idx + 0x4c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))))) )) << number_literal))) ;) })) (expression_statement "prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx;" (assignment_expression "prVar17 = (re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx" identifier = (cast_expression "(re_node_set *)\n                                (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx" (parenthesized_expression "(((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar39.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar39.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar39.mbcset)->ncoll_syms" & (field_expression "(aVar39.mbcset)->ncoll_syms" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx\n                      ;" (assignment_expression "pbVar38 = (bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx" identifier = (cast_expression "(bin_tree_t *)(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(*(bin_tree_t **)(aVar39.idx + 0x34))->first->node_idx" (field_expression "(*(bin_tree_t **)(aVar39.idx + 0x34))->first" (parenthesized_expression "(*(bin_tree_t **)(aVar39.idx + 0x34))" ( (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x34)" ( (binary_expression "aVar39.idx + 0x34" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) )) -> field_identifier) -> field_identifier))) ;) (expression_statement "*(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38;" (assignment_expression "*(bin_tree_t **)(aVar39.idx + 0x48) = pbVar38" (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x48)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x48)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x48)" ( (binary_expression "aVar39.idx + 0x48" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38);" (assignment_expression "aVar32.sbcset = (re_bitset_ptr_t)(prVar17 + (int)pbVar38)" (field_expression "aVar32.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(prVar17 + (int)pbVar38)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(prVar17 + (int)pbVar38)" ( (binary_expression "prVar17 + (int)pbVar38" identifier + (cast_expression "(int)pbVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)\n                      ;" (assignment_expression "pbVar12 = (bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)" identifier = (cast_expression "(bin_tree_t *)\n                                re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_node_set_init_copy\n                                          ((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)" identifier (argument_list "((re_node_set *)aVar3.mbcset,(re_node_set *)aVar32.mbcset)" ( (cast_expression "(re_node_set *)aVar3.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar32.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar32.mbcset" identifier . field_identifier)) ))))) ;) (expression_statement "pbVar38 = pbVar12;" (assignment_expression "pbVar38 = pbVar12" identifier = identifier) ;) (expression_statement "apbStack_174[0] = pbVar12;" (assignment_expression "apbStack_174[0] = pbVar12" (subscript_expression "apbStack_174[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pbVar12 == (bin_tree_t *)0x0) {\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }" if (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }\n                        aVar32 = aVar39;\n                        aVar35.sbcset = aVar3.sbcset;\n                        prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);\n                        (aVar39.mbcset)->nchar_classes = (Idx)prVar20;\n                        pbVar38 = apbStack_174[0];\n                        if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }\n                      }" { (if_statement "if ((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           ) {\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }" if (parenthesized_expression "((0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)\n                           )" ( (binary_expression "(0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)) && (0 < (int)pbStack_168)" (parenthesized_expression "(0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c))" ( (binary_expression "0 < (int)*(bin_tree_t **)(aVar39.idx + 0x4c)" number_literal < (cast_expression "(int)*(bin_tree_t **)(aVar39.idx + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(bin_tree_t **)(aVar39.idx + 0x4c)" * (cast_expression "(bin_tree_t **)(aVar39.idx + 0x4c)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x4c)" ( (binary_expression "aVar39.idx + 0x4c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))))) )) && (parenthesized_expression "(0 < (int)pbStack_168)" ( (binary_expression "0 < (int)pbStack_168" number_literal < (cast_expression "(int)pbStack_168" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                          iVar9 = 0;\n                          pbVar38 = pbStack_168;\n                          do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);\n                        }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "pbVar38 = pbStack_168;" (assignment_expression "pbVar38 = pbStack_168" identifier = identifier) ;) (do_statement "do {\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          } while (iVar9 < (int)pbVar38);" do (compound_statement "{\n                            piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);\n                            pbVar34 = (bin_tree_t *)0x0;\n                            pbVar29 = pbStack_164;\n                            if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }\n                          }" { (expression_statement "piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4);" (assignment_expression "piVar24 = (int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4)" identifier = (cast_expression "(int *)((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4)" ( (binary_expression "(int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8 + -4" (binary_expression "(int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data +\n                                             (int)(&pbStack_164->parent)[iVar9] * 8" (cast_expression "(int)((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data" ( (type_descriptor "int" primitive_type) ) (field_expression "((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)\n                                                   ->data" (parenthesized_expression "((bin_tree_storage_t *)(aVar39.mbcset)->mbchars)" ( (cast_expression "(bin_tree_storage_t *)(aVar39.mbcset)->mbchars" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar39.mbcset)->mbchars" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier)) )) -> field_identifier)) + (binary_expression "(int)(&pbStack_164->parent)[iVar9] * 8" (cast_expression "(int)(&pbStack_164->parent)[iVar9]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&pbStack_164->parent)[iVar9]" (parenthesized_expression "(&pbStack_164->parent)" ( (pointer_expression "&pbStack_164->parent" & (field_expression "pbStack_164->parent" identifier -> field_identifier)) )) [ identifier ])) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar34 = (bin_tree_t *)0x0;" (assignment_expression "pbVar34 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar29 = pbStack_164;" (assignment_expression "pbVar29 = pbStack_164" identifier = identifier) ;) (if_statement "if (*(char *)(piVar24 + 1) == '\x04') {\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }" if (parenthesized_expression "(*(char *)(piVar24 + 1) == '\x04')" ( (binary_expression "*(char *)(piVar24 + 1) == '\x04'" (pointer_expression "*(char *)(piVar24 + 1)" * (cast_expression "(char *)(piVar24 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24 + 1)" ( (binary_expression "piVar24 + 1" identifier + number_literal) )))) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                              while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }\n                              aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;\n                              aVar32 = aVar35;\n                              IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);\n                              if (IVar21 != 0) goto LAB_00052a54;\n                              aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);\n                              pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);\n                              if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;\n                              iVar9 = 1;\n                              pbVar38 = pbStack_168;\n                            }" { (while_statement "while ((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))) {\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }" while (parenthesized_expression "((piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24)))" ( (parenthesized_expression "(piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24))" ( (comma_expression "piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4),\n                                     *(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24)" (assignment_expression "piVar27 = (int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4)" identifier = (cast_expression "(int *)((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4)" ( (binary_expression "(int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8 + -4" (binary_expression "(int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data +\n                                                       (int)pbVar29->parent * 8" (cast_expression "(int)((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data" ( (type_descriptor "int" primitive_type) ) (field_expression "((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)->data" (parenthesized_expression "((bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars)" ( (cast_expression "(bin_tree_storage_t *)\n                                                             (aVar39.mbcset)->mbchars" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar39.mbcset)->mbchars" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier)) )) -> field_identifier)) + (binary_expression "(int)pbVar29->parent * 8" (cast_expression "(int)pbVar29->parent" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar29->parent" identifier -> field_identifier)) * number_literal)) + number_literal) )))) , (binary_expression "*(char *)(piVar27 + 1) != '\t' || (*piVar27 != *piVar24)" (binary_expression "*(char *)(piVar27 + 1) != '\t'" (pointer_expression "*(char *)(piVar27 + 1)" * (cast_expression "(char *)(piVar27 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar27 + 1)" ( (binary_expression "piVar27 + 1" identifier + number_literal) )))) != (char_literal "'\t'" ' escape_sequence ')) || (parenthesized_expression "(*piVar27 != *piVar24)" ( (binary_expression "*piVar27 != *piVar24" (pointer_expression "*piVar27" * identifier) != (pointer_expression "*piVar24" * identifier)) )))) )) )) (compound_statement "{\n                                pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);\n                                pbVar29 = (bin_tree_t *)&pbVar29->left;\n                                if (pbVar38 == pbVar34) goto LAB_00052a54;\n                              }" { (expression_statement "pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1);" (assignment_expression "pbVar34 = (bin_tree_t *)((int)&pbVar34->parent + 1)" identifier = (cast_expression "(bin_tree_t *)((int)&pbVar34->parent + 1)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar34->parent + 1)" ( (binary_expression "(int)&pbVar34->parent + 1" (cast_expression "(int)&pbVar34->parent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar34->parent" & (field_expression "pbVar34->parent" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pbVar29 = (bin_tree_t *)&pbVar29->left;" (assignment_expression "pbVar29 = (bin_tree_t *)&pbVar29->left" identifier = (cast_expression "(bin_tree_t *)&pbVar29->left" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar29->left" & (field_expression "pbVar29->left" identifier -> field_identifier)))) ;) (if_statement "if (pbVar38 == pbVar34) goto LAB_00052a54;" if (parenthesized_expression "(pbVar38 == pbVar34)" ( (binary_expression "pbVar38 == pbVar34" identifier == identifier) )) (goto_statement "goto LAB_00052a54;" goto statement_identifier ;)) })) (expression_statement "aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset;" (assignment_expression "aVar35 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])->mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3])" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)\n                                       (&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3]" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)\n                                       [(int)(&pbStack_164->parent)[iVar9] * 3]" (parenthesized_expression "(&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right)" ( (pointer_expression "&((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right" & (field_expression "((bin_tree_t *)(aVar39.mbcset)->nmbchars)->right" (parenthesized_expression "((bin_tree_t *)(aVar39.mbcset)->nmbchars)" ( (cast_expression "(bin_tree_t *)(aVar39.mbcset)->nmbchars" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar39.mbcset)->nmbchars" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier)) )) -> field_identifier)) )) [ (binary_expression "(int)(&pbStack_164->parent)[iVar9] * 3" (cast_expression "(int)(&pbStack_164->parent)[iVar9]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&pbStack_164->parent)[iVar9]" (parenthesized_expression "(&pbStack_164->parent)" ( (pointer_expression "&pbStack_164->parent" & (field_expression "pbStack_164->parent" identifier -> field_identifier)) )) [ identifier ])) * number_literal) ])) ))) -> field_identifier)) ;) (expression_statement "aVar32 = aVar35;" (assignment_expression "aVar32 = aVar35" identifier = identifier) ;) (expression_statement "IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset);" (assignment_expression "IVar21 = re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset)" identifier = (call_expression "re_node_set_contains\n                                                 ((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset)" identifier (argument_list "((re_node_set *)pbVar38,(Idx)&pbStack_164,\n                                                  (re_node_set *)aVar35.mbcset)" ( (cast_expression "(re_node_set *)pbVar38" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(Idx)&pbStack_164" (parenthesized_expression "(Idx)" ( identifier )) & identifier) , (cast_expression "(re_node_set *)aVar35.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar35.mbcset" identifier . field_identifier)) )))) ;) (if_statement "if (IVar21 != 0) goto LAB_00052a54;" if (parenthesized_expression "(IVar21 != 0)" ( (binary_expression "IVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00052a54;" goto statement_identifier ;)) (expression_statement "aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx);" (assignment_expression "aVar32.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx)" (field_expression "aVar32.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n                                   ((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx)" ( (binary_expression "(re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx +\n                                   aVar32.idx" (cast_expression "(re_node_set *)\n                                    (((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr).idx" (parenthesized_expression "(((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar39.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar39.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar39.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar39.mbcset)->ncoll_syms" & (field_expression "(aVar39.mbcset)->ncoll_syms" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier)) + (field_expression "aVar32.idx" identifier . field_identifier)) )))) ;) (expression_statement "pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset);" (assignment_expression "pbVar38 = (bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset)" identifier = (cast_expression "(bin_tree_t *)\n                                        re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_node_set_merge((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset)" identifier (argument_list "((re_node_set *)aVar3.mbcset,\n                                                          (re_node_set *)aVar32.mbcset)" ( (cast_expression "(re_node_set *)aVar3.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar32.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar32.mbcset" identifier . field_identifier)) ))))) ;) (if_statement "if (pbVar38 != (bin_tree_t *)0x0) goto LAB_00052abc;" if (parenthesized_expression "(pbVar38 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar38 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00052abc;" goto statement_identifier ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pbVar38 = pbStack_168;" (assignment_expression "pbVar38 = pbStack_168" identifier = identifier) ;) }) (else_clause "else {\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }" else (compound_statement "{\nLAB_00052a54:\n                              iVar9 = iVar9 + 1;\n                            }" { (labeled_statement "LAB_00052a54:\n                              iVar9 = iVar9 + 1;" statement_identifier : (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;)) }))) }) while (parenthesized_expression "(iVar9 < (int)pbVar38)" ( (binary_expression "iVar9 < (int)pbVar38" identifier < (cast_expression "(int)pbVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "aVar32 = aVar39;" (assignment_expression "aVar32 = aVar39" identifier = identifier) ;) (expression_statement "aVar35.sbcset = aVar3.sbcset;" (assignment_expression "aVar35.sbcset = aVar3.sbcset" (field_expression "aVar35.sbcset" identifier . field_identifier) = (field_expression "aVar3.sbcset" identifier . field_identifier)) ;) (expression_statement "prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0);" (assignment_expression "prVar20 = re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0)" identifier = (call_expression "re_acquire_state_context\n                                            ((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0)" identifier (argument_list "((reg_errcode_t *)apbStack_174,(re_dfa_t *)aVar39.mbcset\n                                             ,(re_node_set *)aVar3.mbcset,0)" ( (cast_expression "(reg_errcode_t *)apbStack_174" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)aVar39.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar3.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "(aVar39.mbcset)->nchar_classes = (Idx)prVar20;" (assignment_expression "(aVar39.mbcset)->nchar_classes = (Idx)prVar20" (field_expression "(aVar39.mbcset)->nchar_classes" (parenthesized_expression "(aVar39.mbcset)" ( (field_expression "aVar39.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Idx)prVar20" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pbVar38 = apbStack_174[0];" (assignment_expression "pbVar38 = apbStack_174[0]" identifier = (subscript_expression "apbStack_174[0]" identifier [ number_literal ])) ;) (if_statement "if (prVar20 != (re_dfastate_t *)0x0) {\n                          if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }" if (parenthesized_expression "(prVar20 != (re_dfastate_t *)0x0)" ( (binary_expression "prVar20 != (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 ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar47)(pbStack_164);\n                          aVar35 = aVar3;\n                          pbVar38 = pbVar12;\n                        }" { (if_statement "if ((prVar20->field_0x34 & 1) == 0) {\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }\n                          else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }" if (parenthesized_expression "((prVar20->field_0x34 & 1) == 0)" ( (binary_expression "(prVar20->field_0x34 & 1) == 0" (parenthesized_expression "(prVar20->field_0x34 & 1)" ( (binary_expression "prVar20->field_0x34 & 1" (field_expression "prVar20->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                            aVar3 = aVar35;\n                          }" { (expression_statement "*(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;" (assignment_expression "*(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x30)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x30)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x30)" ( (binary_expression "aVar39.idx + 0x30" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;" (assignment_expression "*(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x2c)" ( (binary_expression "aVar39.idx + 0x2c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;" (assignment_expression "*(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x28)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x28)" ( (binary_expression "aVar39.idx + 0x28" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (expression_statement "aVar3 = aVar35;" (assignment_expression "aVar3 = aVar35" identifier = identifier) ;) }) (else_clause "else {\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }" else (compound_statement "{\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);\n                            *(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);\n                            *(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;\n                            aVar32 = aVar39;\n                            prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);\n                            *(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;\n                            aVar35 = aVar3;\n                            pbVar38 = apbStack_174[0];\n                            if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;\n                          }" { (expression_statement "prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1);" (assignment_expression "prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1)" identifier = (call_expression "re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1)" identifier (argument_list "((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,1)" ( (cast_expression "(reg_errcode_t *)apbStack_174" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)aVar39.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar3.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "*(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20;" (assignment_expression "*(re_dfastate_t **)(aVar39.idx + 0x28) = prVar20" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x28)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x28)" ( (binary_expression "aVar39.idx + 0x28" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2);" (assignment_expression "prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2)" identifier = (call_expression "re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2)" identifier (argument_list "((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,2)" ( (cast_expression "(reg_errcode_t *)apbStack_174" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)aVar39.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar3.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "*(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20;" (assignment_expression "*(re_dfastate_t **)(aVar39.idx + 0x2c) = prVar20" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x2c)" ( (binary_expression "aVar39.idx + 0x2c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "aVar32 = aVar39;" (assignment_expression "aVar32 = aVar39" identifier = identifier) ;) (expression_statement "prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6);" (assignment_expression "prVar20 = re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6)" identifier = (call_expression "re_acquire_state_context\n                                                ((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6)" identifier (argument_list "((reg_errcode_t *)apbStack_174,\n                                                 (re_dfa_t *)aVar39.mbcset,\n                                                 (re_node_set *)aVar3.mbcset,6)" ( (cast_expression "(reg_errcode_t *)apbStack_174" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)aVar39.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar3.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar3.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "*(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20;" (assignment_expression "*(re_dfastate_t **)(aVar39.idx + 0x30) = prVar20" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x30)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x30)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x30)" ( (binary_expression "aVar39.idx + 0x30" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "aVar35 = aVar3;" (assignment_expression "aVar35 = aVar3" identifier = identifier) ;) (expression_statement "pbVar38 = apbStack_174[0];" (assignment_expression "pbVar38 = apbStack_174[0]" identifier = (subscript_expression "apbStack_174[0]" identifier [ number_literal ])) ;) (if_statement "if (((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)) goto LAB_00052abc;" if (parenthesized_expression "(((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0))" ( (binary_expression "((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                               (pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)" (parenthesized_expression "((*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0))" ( (binary_expression "(*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                                (*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)" (parenthesized_expression "(*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0)" ( (binary_expression "*(re_dfastate_t **)(aVar39.idx + 0x28) == (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x28)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x28)" ( (binary_expression "aVar39.idx + 0x28" (field_expression "aVar39.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 **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0)" ( (binary_expression "*(re_dfastate_t **)(aVar39.idx + 0x2c) == (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)(aVar39.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(aVar39.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar39.idx + 0x2c)" ( (binary_expression "aVar39.idx + 0x2c" (field_expression "aVar39.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 "(pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0)" ( (comma_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8),\n                               prVar20 == (re_dfastate_t *)0x0" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) , (binary_expression "prVar20 == (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_00052abc;" goto statement_identifier ;)) }))) (expression_statement "(*pcVar47)(pbStack_164);" (call_expression "(*pcVar47)(pbStack_164)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(pbStack_164)" ( identifier ))) ;) (expression_statement "aVar35 = aVar3;" (assignment_expression "aVar35 = aVar3" identifier = identifier) ;) (expression_statement "pbVar38 = pbVar12;" (assignment_expression "pbVar38 = pbVar12" identifier = identifier) ;) })) })) (labeled_statement "LAB_00052abc:\n                      bVar25 = *aVar8.sbcset;" statement_identifier : (expression_statement "bVar25 = *aVar8.sbcset;" (assignment_expression "bVar25 = *aVar8.sbcset" identifier = (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier))) ;)) (expression_statement "piVar24 = *(int **)(bVar25 + 0x38);" (assignment_expression "piVar24 = *(int **)(bVar25 + 0x38)" identifier = (pointer_expression "*(int **)(bVar25 + 0x38)" * (cast_expression "(int **)(bVar25 + 0x38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(bVar25 + 0x38)" ( (binary_expression "bVar25 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (expression_statement "pbStack_178 = pbVar38;" (assignment_expression "pbStack_178 = pbVar38" identifier = identifier) ;) (if_statement "if (piVar24 != (int *)0x0) {\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);\n                        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n                      }" { (do_statement "do {\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (piVar24 != (int *)0x0);" do (compound_statement "{\n                          piVar24 = (int *)*piVar24;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        }" { (expression_statement "piVar24 = (int *)*piVar24;" (assignment_expression "piVar24 = (int *)*piVar24" identifier = (cast_expression "(int *)*piVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) })) (expression_statement "*(undefined4 *)(bVar25 + 0x40) = 0x1f;" (assignment_expression "*(undefined4 *)(bVar25 + 0x40) = 0x1f" (pointer_expression "*(undefined4 *)(bVar25 + 0x40)" * (cast_expression "(undefined4 *)(bVar25 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x40)" ( (binary_expression "bVar25 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(bVar25 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(bVar25 + 0x38) = 0" (pointer_expression "*(undefined4 *)(bVar25 + 0x38)" * (cast_expression "(undefined4 *)(bVar25 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x38)" ( (binary_expression "bVar25 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(bVar25 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(bVar25 + 0x34) = 0" (pointer_expression "*(undefined4 *)(bVar25 + 0x34)" * (cast_expression "(undefined4 *)(bVar25 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x34)" ( (binary_expression "bVar25 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar47)(*(undefined4 *)(bVar25 + 0x10));" (call_expression "(*pcVar47)(*(undefined4 *)(bVar25 + 0x10))" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(*(undefined4 *)(bVar25 + 0x10))" ( (pointer_expression "*(undefined4 *)(bVar25 + 0x10)" * (cast_expression "(undefined4 *)(bVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x10)" ( (binary_expression "bVar25 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(bVar25 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(bVar25 + 0x10) = 0" (pointer_expression "*(undefined4 *)(bVar25 + 0x10)" * (cast_expression "(undefined4 *)(bVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar25 + 0x10)" ( (binary_expression "bVar25 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "re_string_destruct(&rStack_160);" (call_expression "re_string_destruct(&rStack_160)" identifier (argument_list "(&rStack_160)" ( (pointer_expression "&rStack_160" & identifier) ))) ;) (expression_statement "pbVar38 = pbStack_178;" (assignment_expression "pbVar38 = pbStack_178" identifier = identifier) ;) (if_statement "if (pbStack_178 != (bin_tree_t *)0x0) goto joined_r0x00052b2c;" if (parenthesized_expression "(pbStack_178 != (bin_tree_t *)0x0)" ( (binary_expression "pbStack_178 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00052b2c;" goto statement_identifier ;)) (goto_statement "goto LAB_000526ec;" goto statement_identifier ;) })) (expression_statement "aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;" (assignment_expression "aVar32.mbcset = (re_charset_t *)*aVar8.sbcset" (field_expression "aVar32.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)*aVar8.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier)))) ;) (goto_statement "goto LAB_00052c64;" goto statement_identifier ;) })) (goto_statement "goto LAB_000525f4;" goto statement_identifier ;) })) })) })) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) (labeled_statement "LAB_00052c64:\n          pbStack_178 = (bin_tree_t *)0xc;" statement_identifier : (expression_statement "pbStack_178 = (bin_tree_t *)0xc;" (assignment_expression "pbStack_178 = (bin_tree_t *)0xc" identifier = (cast_expression "(bin_tree_t *)0xc" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (goto_statement "goto LAB_000521dc;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx);" (assignment_expression "pbVar12 = (bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx)" identifier = (cast_expression "(bin_tree_t *)re_string_realloc_buffers(&rStack_160,aVar44.idx)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_realloc_buffers(&rStack_160,aVar44.idx)" identifier (argument_list "(&rStack_160,aVar44.idx)" ( (pointer_expression "&rStack_160" & identifier) , (field_expression "aVar44.idx" identifier . field_identifier) ))))) ;) (if_statement "if (pbVar12 == (bin_tree_t *)0x0) {\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }" if (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        aVar32.idx._0_3_ = 0;\n        aVar32.idx._3_1_ = rStack_160.mbs_allocated;\n        bVar25 = *(int *)(aVar39.idx + 0x5c);\n        aVar43 = aVar44;\n        goto LAB_00052158;\n      }" { (expression_statement "aVar32.idx._0_3_ = 0;" (assignment_expression "aVar32.idx._0_3_ = 0" (field_expression "aVar32.idx._0_3_" (field_expression "aVar32.idx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar32.idx._3_1_ = rStack_160.mbs_allocated;" (assignment_expression "aVar32.idx._3_1_ = rStack_160.mbs_allocated" (field_expression "aVar32.idx._3_1_" (field_expression "aVar32.idx" identifier . field_identifier) . field_identifier) = (field_expression "rStack_160.mbs_allocated" identifier . field_identifier)) ;) (expression_statement "bVar25 = *(int *)(aVar39.idx + 0x5c);" (assignment_expression "bVar25 = *(int *)(aVar39.idx + 0x5c)" identifier = (pointer_expression "*(int *)(aVar39.idx + 0x5c)" * (cast_expression "(int *)(aVar39.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x5c)" ( (binary_expression "aVar39.idx + 0x5c" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "aVar43 = aVar44;" (assignment_expression "aVar43 = aVar44" identifier = identifier) ;) (goto_statement "goto LAB_00052158;" goto statement_identifier ;) })) (labeled_statement "LAB_000521d4:\n      aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;" statement_identifier : (expression_statement "aVar32.mbcset = (re_charset_t *)*aVar8.sbcset;" (assignment_expression "aVar32.mbcset = (re_charset_t *)*aVar8.sbcset" (field_expression "aVar32.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)*aVar8.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier)))) ;)) (expression_statement "pbStack_178 = pbVar12;" (assignment_expression "pbStack_178 = pbVar12" identifier = identifier) ;) (labeled_statement "LAB_000521dc:\n      pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;" statement_identifier : (expression_statement "pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset" identifier = (cast_expression "(bin_tree_storage_t *)(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((re_token_t *)(aVar32.idx + 0x38))->opr).mbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x38))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x38))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x38))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x38)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x38)" ( (binary_expression "aVar32.idx + 0x38" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;)) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar33 != (bin_tree_storage_t *)0x0) {\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }" if (parenthesized_expression "(pbVar33 != (bin_tree_storage_t *)0x0)" ( (binary_expression "pbVar33 != (bin_tree_storage_t *)0x0" identifier != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);\n        pcVar47 = *(code **)(pcVar6 + 0x23cd8);\n      }" { (do_statement "do {\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (pbVar33 != (bin_tree_storage_t *)0x0);" do (compound_statement "{\n          pbVar33 = pbVar33->next;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        }" { (expression_statement "pbVar33 = pbVar33->next;" (assignment_expression "pbVar33 = pbVar33->next" identifier = (field_expression "pbVar33->next" identifier -> field_identifier)) ;) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(pbVar33 != (bin_tree_storage_t *)0x0)" ( (binary_expression "pbVar33 != (bin_tree_storage_t *)0x0" identifier != (cast_expression "(bin_tree_storage_t *)0x0" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar47 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar47 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) })) (expression_statement "pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10);" (assignment_expression "pbVar38 = *(bin_tree_t **)(aVar32.idx + 0x10)" identifier = (pointer_expression "*(bin_tree_t **)(aVar32.idx + 0x10)" * (cast_expression "(bin_tree_t **)(aVar32.idx + 0x10)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar32.idx + 0x10)" ( (binary_expression "aVar32.idx + 0x10" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f;" (assignment_expression "((regex_t *)(aVar32.idx + 0x40))->buffer = (re_dfa_t *)0x1f" (field_expression "((regex_t *)(aVar32.idx + 0x40))->buffer" (parenthesized_expression "((regex_t *)(aVar32.idx + 0x40))" ( (cast_expression "(regex_t *)(aVar32.idx + 0x40)" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x40)" ( (binary_expression "aVar32.idx + 0x40" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(re_dfa_t *)0x1f" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "(((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset = (re_bitset_ptr_t)0x0" (field_expression "(((re_token_t *)(aVar32.idx + 0x38))->opr).sbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x38))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x38))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x38))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x38)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x38)" ( (binary_expression "aVar32.idx + 0x38" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "(((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset = (re_bitset_ptr_t)0x0" (field_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr).sbcset" (parenthesized_expression "(((re_token_t *)(aVar32.idx + 0x34))->opr)" ( (field_expression "((re_token_t *)(aVar32.idx + 0x34))->opr" (parenthesized_expression "((re_token_t *)(aVar32.idx + 0x34))" ( (cast_expression "(re_token_t *)(aVar32.idx + 0x34)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar32.idx + 0x34)" ( (binary_expression "aVar32.idx + 0x34" (field_expression "aVar32.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "(*pcVar47)(pbVar38);" (call_expression "(*pcVar47)(pbVar38)" (parenthesized_expression "(*pcVar47)" ( (pointer_expression "*pcVar47" * identifier) )) (argument_list "(pbVar38)" ( identifier ))) ;) (expression_statement "*(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0;" (assignment_expression "*(bin_tree_t **)(aVar32.idx + 0x10) = (bin_tree_t *)0x0" (pointer_expression "*(bin_tree_t **)(aVar32.idx + 0x10)" * (cast_expression "(bin_tree_t **)(aVar32.idx + 0x10)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar32.idx + 0x10)" ( (binary_expression "aVar32.idx + 0x10" (field_expression "aVar32.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 "re_string_destruct(&rStack_160);" (call_expression "re_string_destruct(&rStack_160)" identifier (argument_list "(&rStack_160)" ( (pointer_expression "&rStack_160" & identifier) ))) ;) (expression_statement "aVar32 = aVar44;" (assignment_expression "aVar32 = aVar44" identifier = identifier) ;) (labeled_statement "joined_r0x00052b2c:\n      if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }" statement_identifier : (if_statement "if (iVar7 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      }" { (expression_statement "(**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88));" (call_expression "(**(code **)(pcVar6 + 0x23d08))((pthread_mutex_t *)(aVar39.idx + 0x88))" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23d08)" * (pointer_expression "*(code **)(pcVar6 + 0x23d08)" * (cast_expression "(code **)(pcVar6 + 0x23d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23d08)" ( (binary_expression "pcVar6 + 0x23d08" identifier + number_literal) ))))) )) (argument_list "((pthread_mutex_t *)(aVar39.idx + 0x88))" ( (cast_expression "(pthread_mutex_t *)(aVar39.idx + 0x88)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x88)" ( (binary_expression "aVar39.idx + 0x88" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) ))) ;) }))) }) (else_clause "else {\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }" else (compound_statement "{\n      aVar32.sbcset = (re_bitset_ptr_t)0x0;\n      iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));\n      if (iVar9 != 0) goto LAB_000526c8;\n      if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;\n    }" { (expression_statement "aVar32.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar32.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar32.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88));" (assignment_expression "iVar9 = (**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88))" identifier = (call_expression "(**(code **)(pcVar6 + 0x23cb0))((pthread_mutex_t *)(aVar39.idx + 0x88))" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cb0))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cb0)" * (pointer_expression "*(code **)(pcVar6 + 0x23cb0)" * (cast_expression "(code **)(pcVar6 + 0x23cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cb0)" ( (binary_expression "pcVar6 + 0x23cb0" identifier + number_literal) ))))) )) (argument_list "((pthread_mutex_t *)(aVar39.idx + 0x88))" ( (cast_expression "(pthread_mutex_t *)(aVar39.idx + 0x88)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar39.idx + 0x88)" ( (binary_expression "aVar39.idx + 0x88" (field_expression "aVar39.idx" identifier . field_identifier) + number_literal) ))) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_000526c8;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (if_statement "if (pbStack_178 == (bin_tree_t *)0x0) goto LAB_000520dc;" if (parenthesized_expression "(pbStack_178 == (bin_tree_t *)0x0)" ( (binary_expression "pbStack_178 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000520dc;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;\n  }" else (compound_statement "{\nLAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;\n  }" { (labeled_statement "LAB_000526c8:\n    pbStack_178 = (bin_tree_t *)0xc;" statement_identifier : (expression_statement "pbStack_178 = (bin_tree_t *)0xc;" (assignment_expression "pbStack_178 = (bin_tree_t *)0xc" identifier = (cast_expression "(bin_tree_t *)0xc" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (expression_statement "free_dfa_content((re_dfa_t *)aVar39.mbcset);" (call_expression "free_dfa_content((re_dfa_t *)aVar39.mbcset)" identifier (argument_list "((re_dfa_t *)aVar39.mbcset)" ( (cast_expression "(re_dfa_t *)aVar39.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.mbcset" identifier . field_identifier)) ))) ;) (expression_statement "*aVar8.sbcset = 0;" (assignment_expression "*aVar8.sbcset = 0" (pointer_expression "*aVar8.sbcset" * (field_expression "aVar8.sbcset" identifier . field_identifier)) = number_literal) ;) (expression_statement "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0x0;" (assignment_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent = (bin_tree_t *)0x0" (field_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)->parent" (parenthesized_expression "((bin_tree_t *)&(aVar8.mbcset)->range_starts)" ( (cast_expression "(bin_tree_t *)&(aVar8.mbcset)->range_starts" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar8.mbcset)->range_starts" & (field_expression "(aVar8.mbcset)->range_starts" (parenthesized_expression "(aVar8.mbcset)" ( (field_expression "aVar8.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar38 = pbStack_178;" (assignment_expression "pbVar38 = pbStack_178" identifier = identifier) ;) (labeled_statement "LAB_000526ec:\n  if (pcStack_10c == (char *)*puVar46) {\n    return pbVar38;\n  }" statement_identifier : (if_statement "if (pcStack_10c == (char *)*puVar46) {\n    return pbVar38;\n  }" if (parenthesized_expression "(pcStack_10c == (char *)*puVar46)" ( (binary_expression "pcStack_10c == (char *)*puVar46" identifier == (cast_expression "(char *)*puVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar46" * identifier))) )) (compound_statement "{\n    return pbVar38;\n  }" { (return_statement "return pbVar38;" return identifier ;) }))) (expression_statement "pattern = pcStack_10c;" (assignment_expression "pattern = pcStack_10c" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar6 + 0x23c84))();" (call_expression "(**(code **)(pcVar6 + 0x23c84))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c84))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c84)" * (pointer_expression "*(code **)(pcVar6 + 0x23c84)" * (cast_expression "(code **)(pcVar6 + 0x23c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c84)" ( (binary_expression "pcVar6 + 0x23c84" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "switchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);" statement_identifier : (expression_statement "pcVar6 = *(code **)(pcVar6 + 0x23adc);" (assignment_expression "pcVar6 = *(code **)(pcVar6 + 0x23adc)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23adc)" * (cast_expression "(code **)(pcVar6 + 0x23adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23adc)" ( (binary_expression "pcVar6 + 0x23adc" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "syntax_00 = **(reg_syntax_t **)(pcVar6 + 0x22a58);" (assignment_expression "syntax_00 = **(reg_syntax_t **)(pcVar6 + 0x22a58)" identifier = (pointer_expression "**(reg_syntax_t **)(pcVar6 + 0x22a58)" * (pointer_expression "*(reg_syntax_t **)(pcVar6 + 0x22a58)" * (cast_expression "(reg_syntax_t **)(pcVar6 + 0x22a58)" ( (type_descriptor "reg_syntax_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x22a58)" ( (binary_expression "pcVar6 + 0x22a58" identifier + number_literal) )))))) ;) (expression_statement "*(byte *)&(aVar35.mbcset)->nequiv_classes =\n       *(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |\n       1;" (assignment_expression "*(byte *)&(aVar35.mbcset)->nequiv_classes =\n       *(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |\n       1" (pointer_expression "*(byte *)&(aVar35.mbcset)->nequiv_classes" * (cast_expression "(byte *)&(aVar35.mbcset)->nequiv_classes" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar35.mbcset)->nequiv_classes" & (field_expression "(aVar35.mbcset)->nequiv_classes" (parenthesized_expression "(aVar35.mbcset)" ( (field_expression "aVar35.mbcset" identifier . field_identifier) )) -> field_identifier)))) = (binary_expression "*(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3) |\n       1" (binary_expression "*(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6 | (byte)(((syntax_00 << 6) >> 0x1f) << 3)" (binary_expression "*(byte *)&(aVar35.mbcset)->nequiv_classes & 0xf6" (pointer_expression "*(byte *)&(aVar35.mbcset)->nequiv_classes" * (cast_expression "(byte *)&(aVar35.mbcset)->nequiv_classes" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar35.mbcset)->nequiv_classes" & (field_expression "(aVar35.mbcset)->nequiv_classes" (parenthesized_expression "(aVar35.mbcset)" ( (field_expression "aVar35.mbcset" identifier . field_identifier) )) -> field_identifier)))) & number_literal) | (call_expression "(byte)(((syntax_00 << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((syntax_00 << 6) >> 0x1f) << 3)" ( (binary_expression "((syntax_00 << 6) >> 0x1f) << 3" (parenthesized_expression "((syntax_00 << 6) >> 0x1f)" ( (binary_expression "(syntax_00 << 6) >> 0x1f" (parenthesized_expression "(syntax_00 << 6)" ( (binary_expression "syntax_00 << 6" identifier << number_literal) )) >> number_literal) )) << number_literal) )))) | number_literal)) ;) (expression_statement "rVar22 = re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00);" (assignment_expression "rVar22 = re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00)" identifier = (call_expression "re_compile_internal((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00)" identifier (argument_list "((regex_t *)aVar35.mbcset,pattern,aVar32.ctx_type,syntax_00)" ( (cast_expression "(regex_t *)aVar35.mbcset" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar35.mbcset" identifier . field_identifier)) , identifier , (field_expression "aVar32.ctx_type" identifier . field_identifier) , identifier )))) ;) (if_statement "if (rVar22 == _REG_NOERROR) {\n    return (bin_tree_t *)0x0;\n  }" if (parenthesized_expression "(rVar22 == _REG_NOERROR)" ( (binary_expression "rVar22 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n    return (bin_tree_t *)0x0;\n  }" { (return_statement "return (bin_tree_t *)0x0;" return (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) comment comment (expression_statement "pbVar38 = (bin_tree_t *)\n            (**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);" (assignment_expression "pbVar38 = (bin_tree_t *)\n            (**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" identifier = (cast_expression "(bin_tree_t *)\n            (**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar6 + 0x22c8c))\n                      (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x22c8c))" ( (pointer_expression "**(code **)(pcVar6 + 0x22c8c)" * (pointer_expression "*(code **)(pcVar6 + 0x22c8c)" * (cast_expression "(code **)(pcVar6 + 0x22c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x22c8c)" ( (binary_expression "pcVar6 + 0x22c8c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" ( number_literal , (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                         *(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8" (pointer_expression "*(int *)(pcVar6 + 0x22694)" * (cast_expression "(int *)(pcVar6 + 0x22694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x22694)" ( (binary_expression "pcVar6 + 0x22694" identifier + number_literal) )))) + number_literal) + (pointer_expression "*(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" * (cast_expression "(int *)(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" ( (binary_expression "rVar22 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084" (binary_expression "rVar22 * 4 + *(int *)(pcVar6 + 0x22694)" (binary_expression "rVar22 * 4" identifier * number_literal) + (pointer_expression "*(int *)(pcVar6 + 0x22694)" * (cast_expression "(int *)(pcVar6 + 0x22694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x22694)" ( (binary_expression "pcVar6 + 0x22694" identifier + number_literal) ))))) + number_literal) ))))) , number_literal ))))) ;) (return_statement "return pbVar38;" return identifier ;) (labeled_statement "LAB_00052628:\n  while( true ) {\n    aVar43.sbcset = (re_bitset_ptr_t)0x0;\n    iVar10 = 0;\n    bVar1 = false;\n    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;\nLAB_00052650:\n    aVar44.idx = aVar32.idx;\n    aVar35 = aVar43;\n    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);\n    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;\n    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);\n    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" statement_identifier : (while_statement "while( true ) {\n    aVar43.sbcset = (re_bitset_ptr_t)0x0;\n    iVar10 = 0;\n    bVar1 = false;\n    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;\nLAB_00052650:\n    aVar44.idx = aVar32.idx;\n    aVar35 = aVar43;\n    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);\n    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;\n    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);\n    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    aVar43.sbcset = (re_bitset_ptr_t)0x0;\n    iVar10 = 0;\n    bVar1 = false;\n    if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;\nLAB_00052650:\n    aVar44.idx = aVar32.idx;\n    aVar35 = aVar43;\n    pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);\n    if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;\n    aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);\n    if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(pbStack_164);\n    pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n    if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" { (expression_statement "aVar43.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar43.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar43.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       ) break;" if (parenthesized_expression "(((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0\n       )" ( (binary_expression "((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts != (wchar_t *)0x0" (field_expression "((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts" (parenthesized_expression "((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)" ( (field_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->ncoll_syms" & (field_expression "(aVar32.mbcset)->ncoll_syms" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier) )) -> field_identifier) != (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00052650:\n    aVar44.idx = aVar32.idx;" statement_identifier : (expression_statement "aVar44.idx = aVar32.idx;" (assignment_expression "aVar44.idx = aVar32.idx" (field_expression "aVar44.idx" identifier . field_identifier) = (field_expression "aVar32.idx" identifier . field_identifier)) ;)) (expression_statement "aVar35 = aVar43;" (assignment_expression "aVar35 = aVar43" identifier = identifier) ;) (expression_statement "pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1);" (assignment_expression "pbVar12 = (bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1)" identifier = (cast_expression "(bin_tree_t *)(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(iVar9 + 0x5bf8))(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1)" (parenthesized_expression "(*(code *)(iVar9 + 0x5bf8))" ( (pointer_expression "*(code *)(iVar9 + 0x5bf8)" * (cast_expression "(code *)(iVar9 + 0x5bf8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5bf8)" ( (binary_expression "iVar9 + 0x5bf8" identifier + number_literal) )))) )) (argument_list "(aVar3.sbcset,aVar32.sbcset,aVar43.sbcset,1)" ( (field_expression "aVar3.sbcset" identifier . field_identifier) , (field_expression "aVar32.sbcset" identifier . field_identifier) , (field_expression "aVar43.sbcset" identifier . field_identifier) , number_literal ))))) ;) (if_statement "if (pbVar12 != (bin_tree_t *)0x0) goto LAB_000521d4;" if (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;)) (expression_statement "aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1);" (assignment_expression "aVar43.sbcset = (re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1)" (field_expression "aVar43.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)((int)&(aVar43.mbcset)->mbchars + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)&(aVar43.mbcset)->mbchars + 1)" ( (binary_expression "(int)&(aVar43.mbcset)->mbchars + 1" (cast_expression "(int)&(aVar43.mbcset)->mbchars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(aVar43.mbcset)->mbchars" & (field_expression "(aVar43.mbcset)->mbchars" (parenthesized_expression "(aVar43.mbcset)" ( (field_expression "aVar43.mbcset" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if (*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0) {\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }" if (parenthesized_expression "(*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0)" ( (binary_expression "*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10) != 0" (pointer_expression "*(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10)" * (cast_expression "(int *)((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10)" ( (binary_expression "(int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts +\n                iVar10" (cast_expression "(int)&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts" & (field_expression "((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)->range_starts" (parenthesized_expression "((((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset)" ( (field_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr).mbcset" (parenthesized_expression "(((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr)" ( (field_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)->opr" (parenthesized_expression "((re_token_t *)&(aVar32.mbcset)->ncoll_syms)" ( (cast_expression "(re_token_t *)&(aVar32.mbcset)->ncoll_syms" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar32.mbcset)->ncoll_syms" & (field_expression "(aVar32.mbcset)->ncoll_syms" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) )) . field_identifier) )) -> field_identifier))) + identifier) )))) != number_literal) )) (compound_statement "{\n      pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;\n      goto LAB_000525ec;\n    }" { (expression_statement "pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends" identifier = (cast_expression "(bin_tree_storage_t *)(aVar32.mbcset)->range_ends" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->range_ends" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (goto_statement "goto LAB_000525ec;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(pbStack_164);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(pbStack_164)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "(pbStack_164)" ( identifier ))) ;) (expression_statement "pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends;" (assignment_expression "pbVar33 = (bin_tree_storage_t *)(aVar32.mbcset)->range_ends" identifier = (cast_expression "(bin_tree_storage_t *)(aVar32.mbcset)->range_ends" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar32.mbcset)->range_ends" (parenthesized_expression "(aVar32.mbcset)" ( (field_expression "aVar32.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (if_statement "if (pbVar33 != (bin_tree_storage_t *)aVar43.sbcset) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" if (parenthesized_expression "(pbVar33 != (bin_tree_storage_t *)aVar43.sbcset)" ( (binary_expression "pbVar33 != (bin_tree_storage_t *)aVar43.sbcset" identifier != (cast_expression "(bin_tree_storage_t *)aVar43.sbcset" ( (type_descriptor "bin_tree_storage_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar43.sbcset" identifier . field_identifier))) )) (compound_statement "{\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000525f4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00052614;" goto statement_identifier ;) })))
(translation_unit "int *******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)\n\n{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    \n                    \n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}\n\n" (function_definition "int *******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)\n\n{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    \n                    \n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" primitive_type (pointer_declarator "*******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "*****\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "****\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "***\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "**\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (pointer_declarator "*\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" * (function_declarator "FUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" identifier (parameter_list "(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *******param_2" primitive_type (pointer_declarator "*******param_2" * (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 "int *******param_3" primitive_type (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 "int *******param_4" primitive_type (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 "undefined *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) )))))))))) (compound_statement "{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    \n                    \n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int *******pppppppiVar2;" primitive_type (pointer_declarator "*******pppppppiVar2" * (pointer_declarator "******pppppppiVar2" * (pointer_declarator "*****pppppppiVar2" * (pointer_declarator "****pppppppiVar2" * (pointer_declarator "***pppppppiVar2" * (pointer_declarator "**pppppppiVar2" * (pointer_declarator "*pppppppiVar2" * identifier))))))) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *******pppppppiVar4;" primitive_type (pointer_declarator "*******pppppppiVar4" * (pointer_declarator "******pppppppiVar4" * (pointer_declarator "*****pppppppiVar4" * (pointer_declarator "****pppppppiVar4" * (pointer_declarator "***pppppppiVar4" * (pointer_declarator "**pppppppiVar4" * (pointer_declarator "*pppppppiVar4" * identifier))))))) ;) (declaration "int *******pppppppiVar5;" primitive_type (pointer_declarator "*******pppppppiVar5" * (pointer_declarator "******pppppppiVar5" * (pointer_declarator "*****pppppppiVar5" * (pointer_declarator "****pppppppiVar5" * (pointer_declarator "***pppppppiVar5" * (pointer_declarator "**pppppppiVar5" * (pointer_declarator "*pppppppiVar5" * identifier))))))) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int ******ppppppiVar8;" primitive_type (pointer_declarator "******ppppppiVar8" * (pointer_declarator "*****ppppppiVar8" * (pointer_declarator "****ppppppiVar8" * (pointer_declarator "***ppppppiVar8" * (pointer_declarator "**ppppppiVar8" * (pointer_declarator "*ppppppiVar8" * identifier)))))) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int ******ppppppiVar11;" primitive_type (pointer_declarator "******ppppppiVar11" * (pointer_declarator "*****ppppppiVar11" * (pointer_declarator "****ppppppiVar11" * (pointer_declarator "***ppppppiVar11" * (pointer_declarator "**ppppppiVar11" * (pointer_declarator "*ppppppiVar11" * identifier)))))) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *****pppppiVar17;" primitive_type (pointer_declarator "*****pppppiVar17" * (pointer_declarator "****pppppiVar17" * (pointer_declarator "***pppppiVar17" * (pointer_declarator "**pppppiVar17" * (pointer_declarator "*pppppiVar17" * identifier))))) ;) (declaration "int *******pppppppiVar18;" primitive_type (pointer_declarator "*******pppppppiVar18" * (pointer_declarator "******pppppppiVar18" * (pointer_declarator "*****pppppppiVar18" * (pointer_declarator "****pppppppiVar18" * (pointer_declarator "***pppppppiVar18" * (pointer_declarator "**pppppppiVar18" * (pointer_declarator "*pppppppiVar18" * identifier))))))) ;) (declaration "int *******pppppppiVar19;" primitive_type (pointer_declarator "*******pppppppiVar19" * (pointer_declarator "******pppppppiVar19" * (pointer_declarator "*****pppppppiVar19" * (pointer_declarator "****pppppppiVar19" * (pointer_declarator "***pppppppiVar19" * (pointer_declarator "**pppppppiVar19" * (pointer_declarator "*pppppppiVar19" * identifier))))))) ;) (declaration "int *******pppppppiVar20;" primitive_type (pointer_declarator "*******pppppppiVar20" * (pointer_declarator "******pppppppiVar20" * (pointer_declarator "*****pppppppiVar20" * (pointer_declarator "****pppppppiVar20" * (pointer_declarator "***pppppppiVar20" * (pointer_declarator "**pppppppiVar20" * (pointer_declarator "*pppppppiVar20" * identifier))))))) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int *******pppppppiVar22;" primitive_type (pointer_declarator "*******pppppppiVar22" * (pointer_declarator "******pppppppiVar22" * (pointer_declarator "*****pppppppiVar22" * (pointer_declarator "****pppppppiVar22" * (pointer_declarator "***pppppppiVar22" * (pointer_declarator "**pppppppiVar22" * (pointer_declarator "*pppppppiVar22" * identifier))))))) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *******pppppppiVar24;" primitive_type (pointer_declarator "*******pppppppiVar24" * (pointer_declarator "******pppppppiVar24" * (pointer_declarator "*****pppppppiVar24" * (pointer_declarator "****pppppppiVar24" * (pointer_declarator "***pppppppiVar24" * (pointer_declarator "**pppppppiVar24" * (pointer_declarator "*pppppppiVar24" * identifier))))))) ;) (declaration "int ******ppppppiVar25;" primitive_type (pointer_declarator "******ppppppiVar25" * (pointer_declarator "*****ppppppiVar25" * (pointer_declarator "****ppppppiVar25" * (pointer_declarator "***ppppppiVar25" * (pointer_declarator "**ppppppiVar25" * (pointer_declarator "*ppppppiVar25" * identifier)))))) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *******pppppppiVar27;" primitive_type (pointer_declarator "*******pppppppiVar27" * (pointer_declarator "******pppppppiVar27" * (pointer_declarator "*****pppppppiVar27" * (pointer_declarator "****pppppppiVar27" * (pointer_declarator "***pppppppiVar27" * (pointer_declarator "**pppppppiVar27" * (pointer_declarator "*pppppppiVar27" * identifier))))))) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *******pppppppiVar29;" primitive_type (pointer_declarator "*******pppppppiVar29" * (pointer_declarator "******pppppppiVar29" * (pointer_declarator "*****pppppppiVar29" * (pointer_declarator "****pppppppiVar29" * (pointer_declarator "***pppppppiVar29" * (pointer_declarator "**pppppppiVar29" * (pointer_declarator "*pppppppiVar29" * identifier))))))) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "int iStack_190;" primitive_type identifier ;) (declaration "int *******pppppppiStack_188;" primitive_type (pointer_declarator "*******pppppppiStack_188" * (pointer_declarator "******pppppppiStack_188" * (pointer_declarator "*****pppppppiStack_188" * (pointer_declarator "****pppppppiStack_188" * (pointer_declarator "***pppppppiStack_188" * (pointer_declarator "**pppppppiStack_188" * (pointer_declarator "*pppppppiStack_188" * identifier))))))) ;) (declaration "int *******pppppppiStack_178;" primitive_type (pointer_declarator "*******pppppppiStack_178" * (pointer_declarator "******pppppppiStack_178" * (pointer_declarator "*****pppppppiStack_178" * (pointer_declarator "****pppppppiStack_178" * (pointer_declarator "***pppppppiStack_178" * (pointer_declarator "**pppppppiStack_178" * (pointer_declarator "*pppppppiStack_178" * identifier))))))) ;) (declaration "int *******apppppppiStack_174 [2];" primitive_type (pointer_declarator "*******apppppppiStack_174 [2]" * (pointer_declarator "******apppppppiStack_174 [2]" * (pointer_declarator "*****apppppppiStack_174 [2]" * (pointer_declarator "****apppppppiStack_174 [2]" * (pointer_declarator "***apppppppiStack_174 [2]" * (pointer_declarator "**apppppppiStack_174 [2]" * (pointer_declarator "*apppppppiStack_174 [2]" * (array_declarator "apppppppiStack_174 [2]" identifier [ number_literal ])))))))) ;) (declaration "int ******ppppppiStack_16c;" primitive_type (pointer_declarator "******ppppppiStack_16c" * (pointer_declarator "*****ppppppiStack_16c" * (pointer_declarator "****ppppppiStack_16c" * (pointer_declarator "***ppppppiStack_16c" * (pointer_declarator "**ppppppiStack_16c" * (pointer_declarator "*ppppppiStack_16c" * identifier)))))) ;) (declaration "int iStack_168;" primitive_type identifier ;) (declaration "int *piStack_164;" primitive_type (pointer_declarator "*piStack_164" * identifier) ;) (declaration "int *******pppppppiStack_160;" primitive_type (pointer_declarator "*******pppppppiStack_160" * (pointer_declarator "******pppppppiStack_160" * (pointer_declarator "*****pppppppiStack_160" * (pointer_declarator "****pppppppiStack_160" * (pointer_declarator "***pppppppiStack_160" * (pointer_declarator "**pppppppiStack_160" * (pointer_declarator "*pppppppiStack_160" * identifier))))))) ;) (declaration "int *******apppppppiStack_15c [5];" primitive_type (pointer_declarator "*******apppppppiStack_15c [5]" * (pointer_declarator "******apppppppiStack_15c [5]" * (pointer_declarator "*****apppppppiStack_15c [5]" * (pointer_declarator "****apppppppiStack_15c [5]" * (pointer_declarator "***apppppppiStack_15c [5]" * (pointer_declarator "**apppppppiStack_15c [5]" * (pointer_declarator "*apppppppiStack_15c [5]" * (array_declarator "apppppppiStack_15c [5]" identifier [ number_literal ])))))))) ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "int *******pppppppiStack_144;" primitive_type (pointer_declarator "*******pppppppiStack_144" * (pointer_declarator "******pppppppiStack_144" * (pointer_declarator "*****pppppppiStack_144" * (pointer_declarator "****pppppppiStack_144" * (pointer_declarator "***pppppppiStack_144" * (pointer_declarator "**pppppppiStack_144" * (pointer_declarator "*pppppppiStack_144" * identifier))))))) ;) (declaration "int *******pppppppiStack_140;" primitive_type (pointer_declarator "*******pppppppiStack_140" * (pointer_declarator "******pppppppiStack_140" * (pointer_declarator "*****pppppppiStack_140" * (pointer_declarator "****pppppppiStack_140" * (pointer_declarator "***pppppppiStack_140" * (pointer_declarator "**pppppppiStack_140" * (pointer_declarator "*pppppppiStack_140" * identifier))))))) ;) (declaration "int *******pppppppiStack_13c;" primitive_type (pointer_declarator "*******pppppppiStack_13c" * (pointer_declarator "******pppppppiStack_13c" * (pointer_declarator "*****pppppppiStack_13c" * (pointer_declarator "****pppppppiStack_13c" * (pointer_declarator "***pppppppiStack_13c" * (pointer_declarator "**pppppppiStack_13c" * (pointer_declarator "*pppppppiStack_13c" * identifier))))))) ;) (declaration "int iStack_138;" primitive_type identifier ;) (declaration "int *******pppppppiStack_134;" primitive_type (pointer_declarator "*******pppppppiStack_134" * (pointer_declarator "******pppppppiStack_134" * (pointer_declarator "*****pppppppiStack_134" * (pointer_declarator "****pppppppiStack_134" * (pointer_declarator "***pppppppiStack_134" * (pointer_declarator "**pppppppiStack_134" * (pointer_declarator "*pppppppiStack_134" * identifier))))))) ;) (declaration "int *******pppppppiStack_130;" primitive_type (pointer_declarator "*******pppppppiStack_130" * (pointer_declarator "******pppppppiStack_130" * (pointer_declarator "*****pppppppiStack_130" * (pointer_declarator "****pppppppiStack_130" * (pointer_declarator "***pppppppiStack_130" * (pointer_declarator "**pppppppiStack_130" * (pointer_declarator "*pppppppiStack_130" * identifier))))))) ;) (declaration "int *******pppppppiStack_12c;" primitive_type (pointer_declarator "*******pppppppiStack_12c" * (pointer_declarator "******pppppppiStack_12c" * (pointer_declarator "*****pppppppiStack_12c" * (pointer_declarator "****pppppppiStack_12c" * (pointer_declarator "***pppppppiStack_12c" * (pointer_declarator "**pppppppiStack_12c" * (pointer_declarator "*pppppppiStack_12c" * identifier))))))) ;) (declaration "int *******pppppppiStack_128;" primitive_type (pointer_declarator "*******pppppppiStack_128" * (pointer_declarator "******pppppppiStack_128" * (pointer_declarator "*****pppppppiStack_128" * (pointer_declarator "****pppppppiStack_128" * (pointer_declarator "***pppppppiStack_128" * (pointer_declarator "**pppppppiStack_128" * (pointer_declarator "*pppppppiStack_128" * identifier))))))) ;) (declaration "int ******ppppppiStack_120;" primitive_type (pointer_declarator "******ppppppiStack_120" * (pointer_declarator "*****ppppppiStack_120" * (pointer_declarator "****ppppppiStack_120" * (pointer_declarator "***ppppppiStack_120" * (pointer_declarator "**ppppppiStack_120" * (pointer_declarator "*ppppppiStack_120" * identifier)))))) ;) (declaration "undefined1 uStack_118;" type_identifier identifier ;) (declaration "byte bStack_117;" type_identifier identifier ;) (declaration "byte bStack_116;" type_identifier identifier ;) (declaration "byte bStack_115;" type_identifier identifier ;) (declaration "int ******ppppppiStack_110;" primitive_type (pointer_declarator "******ppppppiStack_110" * (pointer_declarator "*****ppppppiStack_110" * (pointer_declarator "****ppppppiStack_110" * (pointer_declarator "***ppppppiStack_110" * (pointer_declarator "**ppppppiStack_110" * (pointer_declarator "*ppppppiStack_110" * identifier)))))) ;) (declaration "uint uStack_10c;" type_identifier identifier ;) (declaration "int *******pppppppiStack_108;" primitive_type (pointer_declarator "*******pppppppiStack_108" * (pointer_declarator "******pppppppiStack_108" * (pointer_declarator "*****pppppppiStack_108" * (pointer_declarator "****pppppppiStack_108" * (pointer_declarator "***pppppppiStack_108" * (pointer_declarator "**pppppppiStack_108" * (pointer_declarator "*pppppppiStack_108" * identifier))))))) ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "int ******ppppppiStack_100;" primitive_type (pointer_declarator "******ppppppiStack_100" * (pointer_declarator "*****ppppppiStack_100" * (pointer_declarator "****ppppppiStack_100" * (pointer_declarator "***ppppppiStack_100" * (pointer_declarator "**ppppppiStack_100" * (pointer_declarator "*ppppppiStack_100" * identifier)))))) ;) (declaration "int *******pppppppiStack_fc;" primitive_type (pointer_declarator "*******pppppppiStack_fc" * (pointer_declarator "******pppppppiStack_fc" * (pointer_declarator "*****pppppppiStack_fc" * (pointer_declarator "****pppppppiStack_fc" * (pointer_declarator "***pppppppiStack_fc" * (pointer_declarator "**pppppppiStack_fc" * (pointer_declarator "*pppppppiStack_fc" * identifier))))))) ;) (declaration "int *piStack_f8;" primitive_type (pointer_declarator "*piStack_f8" * identifier) ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "int *******pppppppiStack_f0;" primitive_type (pointer_declarator "*******pppppppiStack_f0" * (pointer_declarator "******pppppppiStack_f0" * (pointer_declarator "*****pppppppiStack_f0" * (pointer_declarator "****pppppppiStack_f0" * (pointer_declarator "***pppppppiStack_f0" * (pointer_declarator "**pppppppiStack_f0" * (pointer_declarator "*pppppppiStack_f0" * identifier))))))) ;) (declaration "int *******pppppppiStack_ec;" primitive_type (pointer_declarator "*******pppppppiStack_ec" * (pointer_declarator "******pppppppiStack_ec" * (pointer_declarator "*****pppppppiStack_ec" * (pointer_declarator "****pppppppiStack_ec" * (pointer_declarator "***pppppppiStack_ec" * (pointer_declarator "**pppppppiStack_ec" * (pointer_declarator "*pppppppiStack_ec" * identifier))))))) ;) (declaration "int *******pppppppiStack_e8;" primitive_type (pointer_declarator "*******pppppppiStack_e8" * (pointer_declarator "******pppppppiStack_e8" * (pointer_declarator "*****pppppppiStack_e8" * (pointer_declarator "****pppppppiStack_e8" * (pointer_declarator "***pppppppiStack_e8" * (pointer_declarator "**pppppppiStack_e8" * (pointer_declarator "*pppppppiStack_e8" * identifier))))))) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "undefined *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "code *pcStack_c0;" type_identifier (pointer_declarator "*pcStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "int *****pppppiStack_b8;" primitive_type (pointer_declarator "*****pppppiStack_b8" * (pointer_declarator "****pppppiStack_b8" * (pointer_declarator "***pppppiStack_b8" * (pointer_declarator "**pppppiStack_b8" * (pointer_declarator "*pppppiStack_b8" * identifier))))) ;) (declaration "int *******pppppppiStack_b4;" primitive_type (pointer_declarator "*******pppppppiStack_b4" * (pointer_declarator "******pppppppiStack_b4" * (pointer_declarator "*****pppppppiStack_b4" * (pointer_declarator "****pppppppiStack_b4" * (pointer_declarator "***pppppppiStack_b4" * (pointer_declarator "**pppppppiStack_b4" * (pointer_declarator "*pppppppiStack_b4" * identifier))))))) ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "undefined4 *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "undefined auStack_a4 [4];" type_identifier (array_declarator "auStack_a4 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_a0;" type_identifier identifier ;) (declaration "int *******pppppppiStack_9c;" primitive_type (pointer_declarator "*******pppppppiStack_9c" * (pointer_declarator "******pppppppiStack_9c" * (pointer_declarator "*****pppppppiStack_9c" * (pointer_declarator "****pppppppiStack_9c" * (pointer_declarator "***pppppppiStack_9c" * (pointer_declarator "**pppppppiStack_9c" * (pointer_declarator "*pppppppiStack_9c" * identifier))))))) ;) (declaration "int *******pppppppiStack_98;" primitive_type (pointer_declarator "*******pppppppiStack_98" * (pointer_declarator "******pppppppiStack_98" * (pointer_declarator "*****pppppppiStack_98" * (pointer_declarator "****pppppppiStack_98" * (pointer_declarator "***pppppppiStack_98" * (pointer_declarator "**pppppppiStack_98" * (pointer_declarator "*pppppppiStack_98" * identifier))))))) ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "int *******pppppppiStack_90;" primitive_type (pointer_declarator "*******pppppppiStack_90" * (pointer_declarator "******pppppppiStack_90" * (pointer_declarator "*****pppppppiStack_90" * (pointer_declarator "****pppppppiStack_90" * (pointer_declarator "***pppppppiStack_90" * (pointer_declarator "**pppppppiStack_90" * (pointer_declarator "*pppppppiStack_90" * identifier))))))) ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "int *******pppppppiStack_88;" primitive_type (pointer_declarator "*******pppppppiStack_88" * (pointer_declarator "******pppppppiStack_88" * (pointer_declarator "*****pppppppiStack_88" * (pointer_declarator "****pppppppiStack_88" * (pointer_declarator "***pppppppiStack_88" * (pointer_declarator "**pppppppiStack_88" * (pointer_declarator "*pppppppiStack_88" * identifier))))))) ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "int *******pppppppiStack_80;" primitive_type (pointer_declarator "*******pppppppiStack_80" * (pointer_declarator "******pppppppiStack_80" * (pointer_declarator "*****pppppppiStack_80" * (pointer_declarator "****pppppppiStack_80" * (pointer_declarator "***pppppppiStack_80" * (pointer_declarator "**pppppppiStack_80" * (pointer_declarator "*pppppppiStack_80" * identifier))))))) ;) (declaration "int *******pppppppiStack_7c;" primitive_type (pointer_declarator "*******pppppppiStack_7c" * (pointer_declarator "******pppppppiStack_7c" * (pointer_declarator "*****pppppppiStack_7c" * (pointer_declarator "****pppppppiStack_7c" * (pointer_declarator "***pppppppiStack_7c" * (pointer_declarator "**pppppppiStack_7c" * (pointer_declarator "*pppppppiStack_7c" * identifier))))))) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined auStack_34 [4];" type_identifier (array_declarator "auStack_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00075be8" * (cast_expression "(int *)PTR___stack_chk_guard_00075be8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar26 = PTR_DAT_00075978 + 0x250;" (assignment_expression "puVar26 = PTR_DAT_00075978 + 0x250" identifier = (binary_expression "PTR_DAT_00075978 + 0x250" identifier + number_literal)) ;) (expression_statement "pppppppiVar29 = (int *******)*param_2;" (assignment_expression "pppppppiVar29 = (int *******)*param_2" identifier = (cast_expression "(int *******)*param_2" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "local_5c = param_6;" (assignment_expression "local_5c = param_6" identifier = identifier) ;) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" identifier = identifier) ;) (expression_statement "pppppppiVar27 = param_2;" (assignment_expression "pppppppiVar27 = param_2" identifier = identifier) ;) (expression_statement "pppppppiVar20 = param_3;" (assignment_expression "pppppppiVar20 = param_3" identifier = identifier) ;) (expression_statement "pppppppiVar18 = param_4;" (assignment_expression "pppppppiVar18 = param_4" identifier = identifier) ;) (expression_statement "pppppppiVar5 = (int *******)FUN_00050250();" (assignment_expression "pppppppiVar5 = (int *******)FUN_00050250()" identifier = (cast_expression "(int *******)FUN_00050250()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00050250()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }" if (parenthesized_expression "((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0))" ( (binary_expression "(*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)" (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) || (parenthesized_expression "(pppppppiVar5 != (int *******)0x0)" ( (binary_expression "pppppppiVar5 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) (compound_statement "{\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }" { (expression_statement "pppppppiVar19 = pppppppiVar29 + 0x10;" (assignment_expression "pppppppiVar19 = pppppppiVar29 + 0x10" identifier = (binary_expression "pppppppiVar29 + 0x10" identifier + number_literal)) ;) (expression_statement "pppppppiVar22 = pppppppiVar29 + 0xe;" (assignment_expression "pppppppiVar22 = pppppppiVar29 + 0xe" identifier = (binary_expression "pppppppiVar29 + 0xe" identifier + number_literal)) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x63ec)" ( (binary_expression "PTR_LAB_00075920 + 0x63ec" identifier + number_literal) )))) ;) (labeled_statement "LAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);" statement_identifier : (expression_statement "bVar15 = *(byte *)(param_3 + 1);" (assignment_expression "bVar15 = *(byte *)(param_3 + 1)" identifier = (pointer_expression "*(byte *)(param_3 + 1)" * (cast_expression "(byte *)(param_3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) ))))) ;)) (expression_statement "pppppppiVar24 = pppppppiVar5;" (assignment_expression "pppppppiVar24 = pppppppiVar5" identifier = identifier) ;) (if_statement "if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }" if (parenthesized_expression "((bVar15 & 0xf7) != 2)" ( (binary_expression "(bVar15 & 0xf7) != 2" (parenthesized_expression "(bVar15 & 0xf7)" ( (binary_expression "bVar15 & 0xf7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }" { (do_statement "do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );" do (compound_statement "{\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      }" { (if_statement "if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;" if (parenthesized_expression "((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9))" ( (binary_expression "(param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)" (parenthesized_expression "(param_5 != (undefined *)0x0)" ( (binary_expression "param_5 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar5 = pppppppiVar24, bVar15 == 9)" ( (comma_expression "pppppppiVar5 = pppppppiVar24, bVar15 == 9" (assignment_expression "pppppppiVar5 = pppppppiVar24" identifier = identifier) , (binary_expression "bVar15 == 9" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_5c = param_6;" (assignment_expression "local_5c = param_6" identifier = identifier) ;) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" identifier = identifier) ;) (expression_statement "pppppppiVar27 = param_2;" (assignment_expression "pppppppiVar27 = param_2" identifier = identifier) ;) (expression_statement "pppppppiVar20 = param_3;" (assignment_expression "pppppppiVar20 = param_3" identifier = identifier) ;) (expression_statement "pppppppiVar18 = param_4;" (assignment_expression "pppppppiVar18 = param_4" identifier = identifier) ;) (expression_statement "pppppppiVar29 = (int *******)FUN_00050250(param_1);" (assignment_expression "pppppppiVar29 = (int *******)FUN_00050250(param_1)" identifier = (cast_expression "(int *******)FUN_00050250(param_1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00050250(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (compound_statement "{\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }" { (expression_statement "pppppppiVar5 = pppppppiVar29;" (assignment_expression "pppppppiVar5 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar4 = pppppppiVar24;" (assignment_expression "pppppppiVar4 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar2 = pppppppiVar29;" (assignment_expression "pppppppiVar2 = pppppppiVar29" identifier = identifier) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00051b68;" goto statement_identifier ;)) }) (else_clause "else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" else (compound_statement "{\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" { (expression_statement "pppppppiVar4 = pppppppiVar29;" (assignment_expression "pppppppiVar4 = pppppppiVar29" identifier = identifier) ;) (expression_statement "pppppppiVar2 = pppppppiVar24;" (assignment_expression "pppppppiVar2 = pppppppiVar24" identifier = identifier) ;) (if_statement "if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }" if (parenthesized_expression "(pppppppiVar29 == (int *******)0x0)" ( (binary_expression "pppppppiVar29 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }" { (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }" if (parenthesized_expression "(pppppppiVar24 != (int *******)0x0)" ( (binary_expression "pppppppiVar24 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }" { (expression_statement "pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588)" identifier = (cast_expression "(int *******)(PTR_LAB_00075920 + 0x4588)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x4588)" ( (binary_expression "PTR_LAB_00075920 + 0x4588" identifier + number_literal) )))) ;) (expression_statement "FUN_00042ca0(pppppppiVar24);" (call_expression "FUN_00042ca0(pppppppiVar24)" identifier (argument_list "(pppppppiVar24)" ( identifier ))) ;) })) (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (break_statement "break;" break ;) })) }))) (expression_statement "pppppppiVar5 = pppppppiVar4;" (assignment_expression "pppppppiVar5 = pppppppiVar4" identifier = identifier) ;) (if_statement "if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;" if (parenthesized_expression "(pppppppiVar2 == (int *******)0x0)" ( (binary_expression "pppppppiVar2 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00051b68;" goto statement_identifier ;)) (expression_statement "local_30 = 0x10;" (assignment_expression "local_30 = 0x10" identifier = number_literal) ;) (expression_statement "pppppppiVar27 = pppppppiVar19;" (assignment_expression "pppppppiVar27 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar20 = pppppppiVar24;" (assignment_expression "pppppppiVar20 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar18 = pppppppiVar29;" (assignment_expression "pppppppiVar18 = pppppppiVar29" identifier = identifier) ;) (expression_statement "local_60 = auStack_34;" (assignment_expression "local_60 = auStack_34" identifier = identifier) ;) (expression_statement "pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);" (assignment_expression "pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22)" identifier = (cast_expression "(int *******)(*pcVar6)(pppppppiVar22)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar6)(pppppppiVar22)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(pppppppiVar22)" ( identifier ))))) ;) (expression_statement "puVar30 = PTR_LAB_00075920;" (assignment_expression "puVar30 = PTR_LAB_00075920" identifier = identifier) ;) (if_statement "if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }" if (parenthesized_expression "(pppppppiVar5 == (int *******)0x0)" ( (binary_expression "pppppppiVar5 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }" { (expression_statement "param_5 = PTR_LAB_00075920 + 0x2ca0;" (assignment_expression "param_5 = PTR_LAB_00075920 + 0x2ca0" identifier = (binary_expression "PTR_LAB_00075920 + 0x2ca0" identifier + number_literal)) ;) (expression_statement "FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);" (call_expression "FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0)" identifier (argument_list "(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0)" ( identifier , (binary_expression "PTR_LAB_00075920 + 0x4588" identifier + number_literal) , number_literal ))) ;) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27 = (int *******)(puVar30 + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(puVar30 + 0x4588)" identifier = (cast_expression "(int *******)(puVar30 + 0x4588)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(puVar30 + 0x4588)" ( (binary_expression "puVar30 + 0x4588" identifier + number_literal) )))) ;) (expression_statement "FUN_00042ca0(pppppppiVar24);" (call_expression "FUN_00042ca0(pppppppiVar24)" identifier (argument_list "(pppppppiVar24)" ( identifier ))) ;) (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "param_3 = (int *******)puVar30;" (assignment_expression "param_3 = (int *******)puVar30" identifier = (cast_expression "(int *******)puVar30" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "bVar15 = *(byte *)(param_3 + 1);" (assignment_expression "bVar15 = *(byte *)(param_3 + 1)" identifier = (pointer_expression "*(byte *)(param_3 + 1)" * (cast_expression "(byte *)(param_3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24 = pppppppiVar5;" (assignment_expression "pppppppiVar24 = pppppppiVar5" identifier = identifier) ;) (if_statement "if ((bVar15 & 0xf7) == 2) break;" if (parenthesized_expression "((bVar15 & 0xf7) == 2)" ( (binary_expression "(bVar15 & 0xf7) == 2" (parenthesized_expression "(bVar15 & 0xf7)" ( (binary_expression "bVar15 & 0xf7" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    pppppppiVar5 = (int *******)0x0;\n  }" else (compound_statement "{\n    pppppppiVar5 = (int *******)0x0;\n  }" { (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (if_statement "if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pppppppiVar5;\n  }" { (return_statement "return pppppppiVar5;" return identifier ;) })) (expression_statement "pcVar6 = FUN_00051cfc;" (assignment_expression "pcVar6 = FUN_00051cfc" identifier = identifier) ;) (expression_statement "iVar10 = local_2c;" (assignment_expression "iVar10 = local_2c" identifier = identifier) ;) (expression_statement "puVar30 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar30 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar14 = local_5c;" (assignment_expression "piVar14 = local_5c" identifier = identifier) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (expression_statement "puStack_c8 = puVar30 + 0x2b884;" (assignment_expression "puStack_c8 = puVar30 + 0x2b884" identifier = (binary_expression "puVar30 + 0x2b884" identifier + number_literal)) ;) (expression_statement "puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);" (assignment_expression "puStack_ac = *(undefined4 **)(puVar30 + 0x23eec)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + 0x23eec)" * (cast_expression "(undefined4 **)(puVar30 + 0x23eec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x23eec)" ( (binary_expression "puVar30 + 0x23eec" identifier + number_literal) ))))) ;) (expression_statement "pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);" (assignment_expression "pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" identifier = (cast_expression "(code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" ( (binary_expression "*(int *)(puVar30 + 0x23c7c) + 0x1ab4" (pointer_expression "*(int *)(puVar30 + 0x23c7c)" * (cast_expression "(int *)(puVar30 + 0x23c7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x23c7c)" ( (binary_expression "puVar30 + 0x23c7c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppppppiVar25 = *pppppppiVar27;" (assignment_expression "ppppppiVar25 = *pppppppiVar27" identifier = (pointer_expression "*pppppppiVar27" * identifier)) ;) (expression_statement "pppppppiStack_9c = (int *******)*puStack_ac;" (assignment_expression "pppppppiStack_9c = (int *******)*puStack_ac" identifier = (cast_expression "(int *******)*puStack_ac" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_ac" * identifier))) ;) (expression_statement "pppppiStack_b8 = ppppppiVar25[0x15];" (assignment_expression "pppppiStack_b8 = ppppppiVar25[0x15]" identifier = (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ])) ;) (expression_statement "piStack_78 = param_6;" (assignment_expression "piStack_78 = param_6" identifier = identifier) ;) (expression_statement "piStack_cc = local_5c;" (assignment_expression "piStack_cc = local_5c" identifier = identifier) ;) (expression_statement "puStack_d0 = local_60;" (assignment_expression "puStack_d0 = local_60" identifier = identifier) ;) (expression_statement "pppppppiVar19 = pppppppiVar20;" (assignment_expression "pppppppiVar19 = pppppppiVar20" identifier = identifier) ;) (expression_statement "pppppppiVar22 = pppppppiVar18;" (assignment_expression "pppppppiVar22 = pppppppiVar18" identifier = identifier) ;) (expression_statement "pppppppiStack_b4 = pppppppiVar27;" (assignment_expression "pppppppiStack_b4 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiStack_98 = pppppppiVar5;" (assignment_expression "pppppppiStack_98 = pppppppiVar5" identifier = identifier) ;) (expression_statement "puStack_94 = param_5;" (assignment_expression "puStack_94 = param_5" identifier = identifier) ;) (expression_statement "pppppppiStack_90 = param_3;" (assignment_expression "pppppppiStack_90 = param_3" identifier = identifier) ;) (expression_statement "puStack_8c = puVar26;" (assignment_expression "puStack_8c = puVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_88 = param_2;" (assignment_expression "pppppppiStack_88 = param_2" identifier = identifier) ;) (expression_statement "uStack_84 = param_1;" (assignment_expression "uStack_84 = param_1" identifier = identifier) ;) (expression_statement "pppppppiStack_80 = param_4;" (assignment_expression "pppppppiStack_80 = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_7c = pppppppiVar29;" (assignment_expression "pppppppiStack_7c = pppppppiVar29" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar6;" (assignment_expression "pcStack_74 = pcVar6" identifier = identifier) ;) (expression_statement "pppppppiStack_e8 = (int *******)FUN_00051ab4();" (assignment_expression "pppppppiStack_e8 = (int *******)FUN_00051ab4()" identifier = (cast_expression "(int *******)FUN_00051ab4()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00051ab4()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" if (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) (compound_statement "{\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }" { (expression_statement "iVar7 = *(int *)(puStack_c8 + -0x7c08);" (assignment_expression "iVar7 = *(int *)(puStack_c8 + -0x7c08)" identifier = (pointer_expression "*(int *)(puStack_c8 + -0x7c08)" * (cast_expression "(int *)(puStack_c8 + -0x7c08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c08)" ( (binary_expression "puStack_c8 + -0x7c08" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);" statement_identifier : (expression_statement "param_4 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "param_4 = (int *******)(ppppppiVar25 + 0x10)" identifier = (cast_expression "(int *******)(ppppppiVar25 + 0x10)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar25 + 0x10)" ( (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "pcStack_c0 = (code *)(iVar7 + -0x92c);" (assignment_expression "pcStack_c0 = (code *)(iVar7 + -0x92c)" identifier = (cast_expression "(code *)(iVar7 + -0x92c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x92c)" ( (binary_expression "iVar7 + -0x92c" identifier + number_literal) )))) ;) (expression_statement "pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);" (assignment_expression "pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" identifier = (cast_expression "(code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" ( (binary_expression "*(int *)(puStack_c8 + -0x7c60) + 0x63ec" (pointer_expression "*(int *)(puStack_c8 + -0x7c60)" * (cast_expression "(int *)(puStack_c8 + -0x7c60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c60)" ( (binary_expression "puStack_c8 + -0x7c60" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);" do (compound_statement "{\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    }" { (expression_statement "pppppppiVar5 = pppppppiStack_e8;" (assignment_expression "pppppppiVar5 = pppppppiStack_e8" identifier = identifier) ;) (expression_statement "pppppppiVar19 = (int *******)0x800000;" (assignment_expression "pppppppiVar19 = (int *******)0x800000" identifier = (cast_expression "(int *******)0x800000" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_e8 = pppppppiVar5;" (assignment_expression "pppppppiStack_e8 = pppppppiVar5" identifier = identifier) ;) (if_statement "if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;" if (parenthesized_expression "(*(char *)(pppppppiVar20 + 1) != '\n')" ( (binary_expression "*(char *)(pppppppiVar20 + 1) != '\n'" (pointer_expression "*(char *)(pppppppiVar20 + 1)" * (cast_expression "(char *)(pppppppiVar20 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 1)" ( (binary_expression "pppppppiVar20 + 1" identifier + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_00051eb8;" goto statement_identifier ;)) (expression_statement "iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);" (assignment_expression "iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" identifier = (call_expression "(*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" (parenthesized_expression "(*pcStack_c0)" ( (pointer_expression "*pcStack_c0" * identifier) )) (argument_list "(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" ( identifier , identifier , (binary_expression "(uint)pppppppiVar18 | 0x800000" (cast_expression "(uint)pppppppiVar18" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "bVar15 = *(byte *)(pppppppiVar20 + 1);" (assignment_expression "bVar15 = *(byte *)(pppppppiVar20 + 1)" identifier = (pointer_expression "*(byte *)(pppppppiVar20 + 1)" * (cast_expression "(byte *)(pppppppiVar20 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 1)" ( (binary_expression "pppppppiVar20 + 1" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;" (assignment_expression "*(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar10 + 0x28) + iVar7" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" if (parenthesized_expression "((bVar15 & 0xf7) == 2)" ( (binary_expression "(bVar15 & 0xf7) == 2" (parenthesized_expression "(bVar15 & 0xf7)" ( (binary_expression "bVar15 & 0xf7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pppppppiVar22 = (int *******)0x0;\n      }" { (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" else (if_statement "if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" if (parenthesized_expression "((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9))" ( (binary_expression "(puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)" (parenthesized_expression "(puVar3 == (undefined *)0x0)" ( (binary_expression "puVar3 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pppppppiVar22 = (int *******)0x0, bVar15 != 9)" ( (comma_expression "pppppppiVar22 = (int *******)0x0, bVar15 != 9" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "bVar15 != 9" identifier != number_literal)) ))) )) (compound_statement "{\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" { (expression_statement "pppppppiVar29 = (int *******)ppppppiVar25[0x15];" (assignment_expression "pppppppiVar29 = (int *******)ppppppiVar25[0x15]" identifier = (cast_expression "(int *******)ppppppiVar25[0x15]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ]))) ;) (expression_statement "ppppppiVar25[0x15] = pppppiStack_b8;" (assignment_expression "ppppppiVar25[0x15] = pppppiStack_b8" (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_cc = piVar14;" (assignment_expression "piStack_cc = piVar14" identifier = identifier) ;) (expression_statement "puStack_d0 = puVar3;" (assignment_expression "puStack_d0 = puVar3" identifier = identifier) ;) (expression_statement "pppppppiVar27 = pppppppiStack_b4;" (assignment_expression "pppppppiVar27 = pppppppiStack_b4" identifier = identifier) ;) (expression_statement "pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);" (assignment_expression "pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" identifier = (cast_expression "(int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" (parenthesized_expression "(*pcStack_b0)" ( (pointer_expression "*pcStack_b0" * identifier) )) (argument_list "(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }" if (parenthesized_expression "((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0))" ( (binary_expression "(*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)" (parenthesized_expression "(*piVar14 != 0)" ( (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" * identifier) != number_literal) )) && (parenthesized_expression "(pppppppiVar22 == (int *******)0x0)" ( (binary_expression "pppppppiVar22 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) (compound_statement "{\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }" { (expression_statement "pppppppiVar19 = (int *******)0x0;" (assignment_expression "pppppppiVar19 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }" if (parenthesized_expression "(pppppppiVar5 != (int *******)0x0)" ( (binary_expression "pppppppiVar5 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }" { (expression_statement "pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" identifier = (cast_expression "(int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" ( (binary_expression "*(int *)(puStack_c8 + -0x7c60) + 0x4588" (pointer_expression "*(int *)(puStack_c8 + -0x7c60)" * (cast_expression "(int *)(puStack_c8 + -0x7c60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c60)" ( (binary_expression "puStack_c8 + -0x7c60" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00042ca0(pppppppiVar5);" (call_expression "FUN_00042ca0(pppppppiVar5)" identifier (argument_list "(pppppppiVar5)" ( identifier ))) ;) })) (expression_statement "pppppppiStack_e8 = (int *******)0x0;" (assignment_expression "pppppppiStack_e8 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00051eb8;" goto statement_identifier ;) })) (expression_statement "pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);" (assignment_expression "pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" identifier = (cast_expression "(int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" ( (binary_expression "(uint)ppppppiVar25[0x15] | (uint)pppppppiVar29" (cast_expression "(uint)ppppppiVar25[0x15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ])) | (cast_expression "(uint)pppppppiVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "ppppppiVar25[0x15] = (int *****)pppppppiVar29;" (assignment_expression "ppppppiVar25[0x15] = (int *****)pppppppiVar29" (subscript_expression "ppppppiVar25[0x15]" identifier [ number_literal ]) = (cast_expression "(int *****)pppppppiVar29" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) })))) (expression_statement "puStack_d0 = auStack_a4;" (assignment_expression "puStack_d0 = auStack_a4" identifier = identifier) ;) (expression_statement "uStack_a0 = 10;" (assignment_expression "uStack_a0 = 10" identifier = number_literal) ;) (expression_statement "pppppppiVar27 = param_4;" (assignment_expression "pppppppiVar27 = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);" (assignment_expression "pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe)" identifier = (cast_expression "(int *******)(*pcStack_bc)(ppppppiVar25 + 0xe)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcStack_bc)(ppppppiVar25 + 0xe)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(ppppppiVar25 + 0xe)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(pppppppiStack_e8 != (int *******)0x0)" ( (binary_expression "pppppppiStack_e8 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (expression_statement "*piVar14 = 0xc;" (assignment_expression "*piVar14 = 0xc" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "pppppppiVar19 = pppppppiVar5;" (assignment_expression "pppppppiVar19 = pppppppiVar5" identifier = identifier) ;) }) (else_clause "else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" else (compound_statement "{\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" { (expression_statement "iVar7 = *(int *)(puStack_c8 + -0x7c08);" (assignment_expression "iVar7 = *(int *)(puStack_c8 + -0x7c08)" identifier = (pointer_expression "*(int *)(puStack_c8 + -0x7c08)" * (cast_expression "(int *)(puStack_c8 + -0x7c08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_c8 + -0x7c08)" ( (binary_expression "puStack_c8 + -0x7c08" identifier + number_literal) ))))) ;) (if_statement "if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;" if (parenthesized_expression "(pppppppiStack_e8 != (int *******)0x0)" ( (binary_expression "pppppppiStack_e8 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00051d9c;" goto statement_identifier ;)) (expression_statement "pppppppiStack_e8 = (int *******)0x0;" (assignment_expression "pppppppiStack_e8 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (labeled_statement "LAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }" statement_identifier : (if_statement "if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }" if (parenthesized_expression "(pppppppiStack_9c == (int *******)*puStack_ac)" ( (binary_expression "pppppppiStack_9c == (int *******)*puStack_ac" identifier == (cast_expression "(int *******)*puStack_ac" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puStack_ac" * identifier))) )) (compound_statement "{\n    return pppppppiStack_e8;\n  }" { (return_statement "return pppppppiStack_e8;" return identifier ;) }))) (expression_statement "pcVar6 = *(code **)(puStack_c8 + -0x79d8);" (assignment_expression "pcVar6 = *(code **)(puStack_c8 + -0x79d8)" identifier = (pointer_expression "*(code **)(puStack_c8 + -0x79d8)" * (cast_expression "(code **)(puStack_c8 + -0x79d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_c8 + -0x79d8)" ( (binary_expression "puStack_c8 + -0x79d8" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = FUN_00051f24;" (assignment_expression "pcVar32 = FUN_00051f24" identifier = identifier) ;) (expression_statement "pppppppiVar5 = pppppppiStack_9c;" (assignment_expression "pppppppiVar5 = pppppppiStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_f4 = puVar3;" (assignment_expression "puStack_f4 = puVar3" identifier = identifier) ;) (expression_statement "piStack_f8 = piVar14;" (assignment_expression "piStack_f8 = piVar14" identifier = identifier) ;) (expression_statement "pppppppiVar5[3] = (int ******)pppppppiVar22;" (assignment_expression "pppppppiVar5[3] = (int ******)pppppppiVar22" (subscript_expression "pppppppiVar5[3]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar22" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar5[2] = (int ******)0x0;" (assignment_expression "pppppppiVar5[2] = (int ******)0x0" (subscript_expression "pppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar5[6] = (int ******)0x0;" (assignment_expression "pppppppiVar5[6] = (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "puVar31 = *(uint **)(pcVar6 + 0x23cc4);" (assignment_expression "puVar31 = *(uint **)(pcVar6 + 0x23cc4)" identifier = (pointer_expression "*(uint **)(pcVar6 + 0x23cc4)" * (cast_expression "(uint **)(pcVar6 + 0x23cc4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cc4)" ( (binary_expression "pcVar6 + 0x23cc4" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar24 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "*(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;" (assignment_expression "*(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9" (pointer_expression "*(byte *)(pppppppiVar5 + 7)" * (cast_expression "(byte *)(pppppppiVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar5 + 7)" ( (binary_expression "pppppppiVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar5 + 7) & 9" (pointer_expression "*(byte *)(pppppppiVar5 + 7)" * (cast_expression "(byte *)(pppppppiVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar5 + 7)" ( (binary_expression "pppppppiVar5 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uStack_10c = *puVar31;" (assignment_expression "uStack_10c = *puVar31" identifier = (pointer_expression "*puVar31" * identifier)) ;) (expression_statement "pppppppiStack_108 = pppppppiVar20;" (assignment_expression "pppppppiStack_108 = pppppppiVar20" identifier = identifier) ;) (expression_statement "iStack_104 = iVar10;" (assignment_expression "iStack_104 = iVar10" identifier = identifier) ;) (expression_statement "ppppppiStack_100 = ppppppiVar25;" (assignment_expression "ppppppiStack_100 = ppppppiVar25" identifier = identifier) ;) (expression_statement "pppppppiStack_fc = pppppppiVar18;" (assignment_expression "pppppppiStack_fc = pppppppiVar18" identifier = identifier) ;) (expression_statement "pppppppiStack_f0 = param_4;" (assignment_expression "pppppppiStack_f0 = param_4" identifier = identifier) ;) (expression_statement "pppppppiStack_ec = pppppppiVar29;" (assignment_expression "pppppppiStack_ec = pppppppiVar29" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar32;" (assignment_expression "pcStack_e4 = pcVar32" identifier = identifier) ;) (if_statement "if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }" if (parenthesized_expression "(pppppppiVar5[1] < (int ******)0xa0)" ( (binary_expression "pppppppiVar5[1] < (int ******)0xa0" (subscript_expression "pppppppiVar5[1]" identifier [ number_literal ]) < (cast_expression "(int ******)0xa0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }" { (expression_statement "pppppppiVar18 = (int *******)0xa0;" (assignment_expression "pppppppiVar18 = (int *******)0xa0" identifier = (cast_expression "(int *******)0xa0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);" (assignment_expression "pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" identifier = (cast_expression "(int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c10))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c10)" * (pointer_expression "*(code **)(pcVar6 + 0x23c10)" * (cast_expression "(code **)(pcVar6 + 0x23c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c10)" ( (binary_expression "pcVar6 + 0x23c10" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar24,0xa0)" ( identifier , number_literal ))))) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }" { (expression_statement "pppppppiVar27 = (int *******)0xc;" (assignment_expression "pppppppiVar27 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000526ec;" goto statement_identifier ;) })) (expression_statement "*pppppppiVar5 = (int ******)pppppppiVar24;" (assignment_expression "*pppppppiVar5 = (int ******)pppppppiVar24" (pointer_expression "*pppppppiVar5" * identifier) = (cast_expression "(int ******)pppppppiVar24" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppiVar5[1] = (int ******)0xa0;" (assignment_expression "pppppppiVar5[1] = (int ******)0xa0" (subscript_expression "pppppppiVar5[1]" identifier [ number_literal ]) = (cast_expression "(int ******)0xa0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) })) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23bb0);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23bb0)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" * (cast_expression "(code **)(pcVar6 + 0x23bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23bb0)" ( (binary_expression "pcVar6 + 0x23bb0" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar20 = (int *******)0xa0;" (assignment_expression "pppppppiVar20 = (int *******)0xa0" identifier = (cast_expression "(int *******)0xa0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar5[2] = (int ******)0xa0;" (assignment_expression "pppppppiVar5[2] = (int ******)0xa0" (subscript_expression "pppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int ******)0xa0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "(*pcVar32)(pppppppiVar24,0);" (call_expression "(*pcVar32)(pppppppiVar24,0)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppppiVar24,0)" ( identifier , number_literal ))) ;) (expression_statement "pppppppiVar24[0x10] = (int ******)0x1f;" (assignment_expression "pppppppiVar24[0x10] = (int ******)0x1f" (subscript_expression "pppppppiVar24[0x10]" identifier [ number_literal ]) = (cast_expression "(int ******)0x1f" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" if (parenthesized_expression "(pppppppiVar19 < (int *******)0xaaaaaaa)" ( (binary_expression "pppppppiVar19 < (int *******)0xaaaaaaa" identifier < (cast_expression "(int *******)0xaaaaaaa" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }" { (expression_statement "pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);" (assignment_expression "pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar19 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar19 + 1)" ( (binary_expression "(int)pppppppiVar19 + 1" (cast_expression "(int)pppppppiVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24[1] = (int ******)pppppppiVar29;" (assignment_expression "pppppppiVar24[1] = (int ******)pppppppiVar29" (subscript_expression "pppppppiVar24[1]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar29" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8)" identifier = (cast_expression "(int ******)(*pcVar32)((int)pppppppiVar29 * 8)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)((int)pppppppiVar29 * 8)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "((int)pppppppiVar29 * 8)" ( (binary_expression "(int)pppppppiVar29 * 8" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "*pppppppiVar24 = ppppppiVar25;" (assignment_expression "*pppppppiVar24 = ppppppiVar25" (pointer_expression "*pppppppiVar24" * identifier) = identifier) ;) (if_statement "if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" if (parenthesized_expression "(pppppppiVar19 == (int *******)0x0)" ( (binary_expression "pppppppiVar19 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }" { (expression_statement "ppppppiVar25 = (int ******)0x0;" (assignment_expression "ppppppiVar25 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" else (compound_statement "{\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" { (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);" do (compound_statement "{\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      }" { (expression_statement "pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);" (assignment_expression "pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2)" identifier = (cast_expression "(int *******)((int)pppppppiVar18 * 2)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar18 * 2)" ( (binary_expression "(int)pppppppiVar18 * 2" (cast_expression "(int)pppppppiVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);" (assignment_expression "ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1)" identifier = (cast_expression "(int ******)((int)pppppppiVar18 + -1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppiVar18 + -1)" ( (binary_expression "(int)pppppppiVar18 + -1" (cast_expression "(int)pppppppiVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pppppppiVar18 <= pppppppiVar19)" ( (binary_expression "pppppppiVar18 <= pppppppiVar19" identifier <= identifier) )) ;) }))) (expression_statement "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);" (assignment_expression "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" ( (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" * (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" * (cast_expression "(code **)(pcVar6 + 0x23aa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23aa4)" ( (binary_expression "pcVar6 + 0x23aa4" identifier + number_literal) ))))) )) (argument_list "(0xc,pppppppiVar18)" ( number_literal , identifier ))))) ;) (expression_statement "pppppppiVar24[0x11] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x11] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c44);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c44)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c44)" * (cast_expression "(code **)(pcVar6 + 0x23c44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c44)" ( (binary_expression "pcVar6 + 0x23c44" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24[8] = ppppppiVar8;" (assignment_expression "pppppppiVar24[8] = ppppppiVar8" (subscript_expression "pppppppiVar24[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)();" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)()" identifier = (cast_expression "(int ******)(*pcVar32)()" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23b44);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23b44)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23b44)" * (cast_expression "(code **)(pcVar6 + 0x23b44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23b44)" ( (binary_expression "pcVar6 + 0x23b44" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24[0x17] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x17] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar9 = (byte *)(*pcVar32)(0xe);" (assignment_expression "pbVar9 = (byte *)(*pcVar32)(0xe)" identifier = (cast_expression "(byte *)(*pcVar32)(0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar32)(0xe)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0xe)" ( number_literal ))))) ;) (expression_statement "pppppppiVar18 = (int *******)0x55;" (assignment_expression "pppppppiVar18 = (int *******)0x55" identifier = (cast_expression "(int *******)0x55" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }" if (parenthesized_expression "((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46))" ( (binary_expression "(((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54))" ( (binary_expression "((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar9 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar9 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar9 & 0xdf)" ( (binary_expression "*pbVar9 & 0xdf" (pointer_expression "*pbVar9" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)" ( (comma_expression "pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54" (assignment_expression "pppppppiVar18 = (int *******)&DAT_00000046" identifier = (cast_expression "(int *******)&DAT_00000046" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000046" & identifier))) , (binary_expression "(pbVar9[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar9[1] & 0xdf)" ( (binary_expression "pbVar9[1] & 0xdf" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)" ( (comma_expression "pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46" (assignment_expression "pppppppiVar18 = (int *******)&DAT_00000004" identifier = (cast_expression "(int *******)&DAT_00000004" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000004" & identifier))) , (binary_expression "(pbVar9[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar9[2] & 0xdf)" ( (binary_expression "pbVar9[2] & 0xdf" (subscript_expression "pbVar9[2]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }" { (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (if_statement "if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }" if (parenthesized_expression "(pbVar9[3] == 0x2d)" ( (binary_expression "pbVar9[3] == 0x2d" (subscript_expression "pbVar9[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar10 = 4;\n      }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) })) (expression_statement "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);" (assignment_expression "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x2b48)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2b48" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);" (assignment_expression "iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d14))" ( (pointer_expression "**(code **)(pcVar6 + 0x23d14)" * (pointer_expression "*(code **)(pcVar6 + 0x23d14)" * (cast_expression "(code **)(pcVar6 + 0x23d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23d14)" ( (binary_expression "pcVar6 + 0x23d14" identifier + number_literal) ))))) )) (argument_list "(pbVar9 + iVar10,pppppppiVar18)" ( (binary_expression "pbVar9 + iVar10" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }" { (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xdf" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "bVar15 = *(byte *)(pppppppiVar24 + 0x16);" (assignment_expression "bVar15 = *(byte *)(pppppppiVar24 + 0x16)" identifier = (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "bVar15 & 0xef" identifier & number_literal)) ;) (if_statement "if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" if (parenthesized_expression "((int)pppppppiVar24[0x17] < 2)" ( (binary_expression "(int)pppppppiVar24[0x17] < 2" (cast_expression "(int)pppppppiVar24[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }" { (labeled_statement "LAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;" statement_identifier : (expression_statement "ppppppiVar25 = *pppppppiVar24;" (assignment_expression "ppppppiVar25 = *pppppppiVar24" identifier = (pointer_expression "*pppppppiVar24" * identifier)) ;)) }) (else_clause "else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" else (compound_statement "{\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" { (if_statement "if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" if (parenthesized_expression "((bVar15 & 0x20) != 0)" ( (binary_expression "(bVar15 & 0x20) != 0" (parenthesized_expression "(bVar15 & 0x20)" ( (binary_expression "bVar15 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" { (expression_statement "pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);" (assignment_expression "pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064)" (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ]) = (cast_expression "(int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x3064)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x3064" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00052094;" goto statement_identifier ;) })) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);" (assignment_expression "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" ( (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" * (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" * (cast_expression "(code **)(pcVar6 + 0x23aa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23aa4)" ( (binary_expression "pcVar6 + 0x23aa4" identifier + number_literal) ))))) )) (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pppppppiVar24[0xf] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xf] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;" if (parenthesized_expression "(ppppppiVar25 == (int ******)0x0)" ( (binary_expression "ppppppiVar25 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);" do (compound_statement "{\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      }" { (expression_statement "uVar16 = iVar10 << 3;" (assignment_expression "uVar16 = iVar10 << 3" identifier = (binary_expression "iVar10 << 3" identifier << number_literal)) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);" do (compound_statement "{\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        }" { (while_statement "while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }" { (expression_statement "uVar21 = uVar28;" (assignment_expression "uVar21 = uVar28" identifier = identifier) ;) (expression_statement "uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);" (assignment_expression "uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23b9c))(uVar16)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23b9c))" ( (pointer_expression "**(code **)(pcVar6 + 0x23b9c)" * (pointer_expression "*(code **)(pcVar6 + 0x23b9c)" * (cast_expression "(code **)(pcVar6 + 0x23b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23b9c)" ( (binary_expression "pcVar6 + 0x23b9c" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier )))) ;) (if_statement "if (uVar28 == 0xffffffff) break;" if (parenthesized_expression "(uVar28 == 0xffffffff)" ( (binary_expression "uVar28 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);" (assignment_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10)" * (cast_expression "(uint *)((int)pppppppiVar24[0xf] + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar24[0xf] + iVar10)" ( (binary_expression "(int)pppppppiVar24[0xf] + iVar10" (cast_expression "(int)pppppppiVar24[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ])) + identifier) )))) = (binary_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10)" * (cast_expression "(uint *)((int)pppppppiVar24[0xf] + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar24[0xf] + iVar10)" ( (binary_expression "(int)pppppppiVar24[0xf] + iVar10" (cast_expression "(int)pppppppiVar24[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0xf]" identifier [ number_literal ])) + identifier) )))) | (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }" if (parenthesized_expression "(((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16))" ( (binary_expression "((uVar16 & 0xffffff80) == 0) && (uVar28 != 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 "(uVar28 != uVar16)" ( (binary_expression "uVar28 != uVar16" identifier != identifier) ))) )) (compound_statement "{\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }" { (labeled_statement "LAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;" statement_identifier : (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xef" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;)) })) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar28 = uVar21 + 1;" (assignment_expression "uVar28 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar21 + 1 == 0x20) goto LAB_000527e4;" if (parenthesized_expression "(uVar21 + 1 == 0x20)" ( (binary_expression "uVar21 + 1 == 0x20" (binary_expression "uVar21 + 1" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_000527e4;" goto statement_identifier ;)) })) (if_statement "if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;" if (parenthesized_expression "((uVar16 & 0xffffff80) == 0)" ( (binary_expression "(uVar16 & 0xffffff80) == 0" (parenthesized_expression "(uVar16 & 0xffffff80)" ( (binary_expression "uVar16 & 0xffffff80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00052780;" goto statement_identifier ;)) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar28 = uVar21 + 1;" (assignment_expression "uVar28 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 + 1 != 0x20)" ( (binary_expression "uVar21 + 1 != 0x20" (binary_expression "uVar21 + 1" identifier + number_literal) != number_literal) )) ;) (labeled_statement "LAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);" statement_identifier : (expression_statement "pppppppiVar20 = (int *******)(uVar21 + 1);" (assignment_expression "pppppppiVar20 = (int *******)(uVar21 + 1)" identifier = (cast_expression "(int *******)(uVar21 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )))) ;)) (expression_statement "iVar10 = iVar10 + 4;" (assignment_expression "iVar10 = iVar10 + 4" identifier = (binary_expression "iVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 != 0x20)" ( (binary_expression "iVar10 != 0x20" identifier != number_literal) )) ;) (expression_statement "ppppppiVar25 = *pppppppiVar24;" (assignment_expression "ppppppiVar25 = *pppppppiVar24" identifier = (pointer_expression "*pppppppiVar24" * identifier)) ;) (expression_statement "pppppppiVar18 = (int *******)0x20;" (assignment_expression "pppppppiVar18 = (int *******)0x20" identifier = (cast_expression "(int *******)0x20" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (if_statement "if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;" if (parenthesized_expression "((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))" ( (binary_expression "(ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0)" (parenthesized_expression "(ppppppiVar25 == (int ******)0x0)" ( (binary_expression "ppppppiVar25 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0)" ( (comma_expression "iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0" (assignment_expression "iVar10 = *(int *)(pcVar6 + 0x23b8c)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x23b8c)" * (cast_expression "(int *)(pcVar6 + 0x23b8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23b8c)" ( (binary_expression "pcVar6 + 0x23b8c" identifier + number_literal) ))))) , (binary_expression "pppppppiVar24[8] == (int ******)0x0" (subscript_expression "pppppppiVar24[8]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }" { (labeled_statement "LAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];" statement_identifier : (expression_statement "ppppppiVar8 = pppppppiVar5[5];" (assignment_expression "ppppppiVar8 = pppppppiVar5[5]" identifier = (subscript_expression "pppppppiVar5[5]" identifier [ number_literal ])) ;)) (expression_statement "(**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);" (call_expression "(**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23bb0))" ( (pointer_expression "**(code **)(pcVar6 + 0x23bb0)" * (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" * (cast_expression "(code **)(pcVar6 + 0x23bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23bb0)" ( (binary_expression "pcVar6 + 0x23bb0" identifier + number_literal) ))))) )) (argument_list "(apppppppiStack_15c,0,0x4c)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uVar28 = (uint)pppppppiVar22 & 0x400000;" (assignment_expression "uVar28 = (uint)pppppppiVar22 & 0x400000" identifier = (binary_expression "(uint)pppppppiVar22 & 0x400000" (cast_expression "(uint)pppppppiVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uStack_118 = uVar28 != 0;" (assignment_expression "uStack_118 = uVar28 != 0" identifier = (binary_expression "uVar28 != 0" identifier != number_literal)) ;) (expression_statement "ppppppiVar25 = pppppppiVar24[0x17];" (assignment_expression "ppppppiVar25 = pppppppiVar24[0x17]" identifier = (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }" if (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" ( (binary_expression "ppppppiVar8 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }" { (expression_statement "pppppppiVar18 = (int *******)(uint)(byte)uStack_118;" (assignment_expression "pppppppiVar18 = (int *******)(uint)(byte)uStack_118" identifier = (cast_expression "(int *******)(uint)(byte)uStack_118" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)(byte)uStack_118" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uStack_118" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) })) (expression_statement "uVar16 = (int)pppppppiVar24[0x16] << 2;" (assignment_expression "uVar16 = (int)pppppppiVar24[0x16] << 2" identifier = (binary_expression "(int)pppppppiVar24[0x16] << 2" (cast_expression "(int)pppppppiVar24[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x16]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pppppppiVar20 = (int *******)(uVar16 >> 0x1f);" (assignment_expression "pppppppiVar20 = (int *******)(uVar16 >> 0x1f)" identifier = (cast_expression "(int *******)(uVar16 >> 0x1f)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar16 >> 0x1f)" ( (binary_expression "uVar16 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "bStack_115 = (byte)pppppppiVar18;" (assignment_expression "bStack_115 = (byte)pppppppiVar18" identifier = (cast_expression "(byte)pppppppiVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bStack_117 = (byte)(uVar16 >> 0x1f);" (assignment_expression "bStack_117 = (byte)(uVar16 >> 0x1f)" identifier = (call_expression "(byte)(uVar16 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar16 >> 0x1f)" ( (binary_expression "uVar16 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppiVar24[0x16] << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppiVar24[0x16] << 3)" ( (binary_expression "(int)pppppppiVar24[0x16] << 3" (cast_expression "(int)pppppppiVar24[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppiVar4 = (int *******)(uint)(byte)uStack_118;" (assignment_expression "pppppppiVar4 = (int *******)(uint)(byte)uStack_118" identifier = (cast_expression "(int *******)(uint)(byte)uStack_118" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)(byte)uStack_118" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uStack_118" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (expression_statement "pppppppiStack_160 = pppppppiVar27;" (assignment_expression "pppppppiStack_160 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiStack_134 = pppppppiVar19;" (assignment_expression "pppppppiStack_134 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_130 = pppppppiVar19;" (assignment_expression "pppppppiStack_130 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_12c = pppppppiVar19;" (assignment_expression "pppppppiStack_12c = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_128 = pppppppiVar19;" (assignment_expression "pppppppiStack_128 = pppppppiVar19" identifier = identifier) ;) (expression_statement "ppppppiStack_120 = ppppppiVar8;" (assignment_expression "ppppppiStack_120 = ppppppiVar8" identifier = identifier) ;) (expression_statement "ppppppiStack_110 = ppppppiVar25;" (assignment_expression "ppppppiStack_110 = ppppppiVar25" identifier = identifier) ;) (if_statement "if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }" if (parenthesized_expression "(pppppppiVar19 == (int *******)0x0)" ( (binary_expression "pppppppiVar19 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }" { (labeled_statement "LAB_00052158:\n        pppppppiVar29 = pppppppiVar4;" statement_identifier : (expression_statement "pppppppiVar29 = pppppppiVar4;" (assignment_expression "pppppppiVar29 = pppppppiVar4" identifier = identifier) ;)) (if_statement "if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }" { (expression_statement "pppppppiVar27 = apppppppiStack_15c[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_15c[0]" identifier = (subscript_expression "apppppppiStack_15c[0]" identifier [ number_literal ])) ;) })) (expression_statement "apppppppiStack_15c[0] = pppppppiVar27;" (assignment_expression "apppppppiStack_15c[0] = pppppppiVar27" (subscript_expression "apppppppiStack_15c[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }" { (if_statement "if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" if (parenthesized_expression "(1 < (int)ppppppiVar25)" ( (binary_expression "1 < (int)ppppppiVar25" number_literal < (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }" { (expression_statement "FUN_000437e4(&pppppppiStack_160);" (call_expression "FUN_000437e4(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) }) (else_clause "else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" else (if_statement "if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" if (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" ( (binary_expression "ppppppiVar8 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }" { (expression_statement "pppppppiStack_140 = pppppppiStack_13c;" (assignment_expression "pppppppiStack_140 = pppppppiStack_13c" identifier = identifier) ;) (expression_statement "pppppppiVar18 = pppppppiStack_13c;" (assignment_expression "pppppppiVar18 = pppppppiStack_13c" identifier = identifier) ;) }) (else_clause "else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" else (compound_statement "{\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" { (if_statement "if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }" if (parenthesized_expression "((int)pppppppiStack_130 <= (int)pppppppiStack_13c)" ( (binary_expression "(int)pppppppiStack_130 <= (int)pppppppiStack_13c" (cast_expression "(int)pppppppiStack_130" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pppppppiStack_13c = pppppppiStack_130;\n            }" { (expression_statement "pppppppiStack_13c = pppppppiStack_130;" (assignment_expression "pppppppiStack_13c = pppppppiStack_130" identifier = identifier) ;) })) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) (expression_statement "pppppppiStack_140 = pppppppiStack_144;" (assignment_expression "pppppppiStack_140 = pppppppiStack_144" identifier = identifier) ;) (if_statement "if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }" if (parenthesized_expression "((int)pppppppiStack_144 < (int)pppppppiStack_13c)" ( (binary_expression "(int)pppppppiStack_144 < (int)pppppppiStack_13c" (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }" { (do_statement "do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);" do (compound_statement "{\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              }" { (expression_statement "puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);" (assignment_expression "puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144)" identifier = (cast_expression "(undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar27 + (int)pppppppiStack_144)" ( (binary_expression "(int)pppppppiVar27 + (int)pppppppiStack_144" (cast_expression "(int)pppppppiVar27" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;" (assignment_expression "iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144" identifier = (binary_expression "(int)pppppppiStack_160 + (int)pppppppiStack_144" (cast_expression "(int)pppppppiStack_160" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);" (assignment_expression "pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_144 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_144 + 1)" ( (binary_expression "(int)pppppppiStack_144 + 1" (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));" (assignment_expression "*puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" (pointer_expression "*puVar12" * identifier) = (pointer_expression "*(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" * (cast_expression "(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" ( (binary_expression "(int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148)" (cast_expression "(int)ppppppiStack_120" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(byte *)(iVar7 + iStack_148)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + iStack_148)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iStack_148)" ( (binary_expression "iVar7 + iStack_148" identifier + identifier) ))))) ))))) ;) (expression_statement "pppppppiVar18 = pppppppiStack_13c;" (assignment_expression "pppppppiVar18 = pppppppiStack_13c" identifier = identifier) ;) (expression_statement "pppppppiStack_140 = pppppppiStack_13c;" (assignment_expression "pppppppiStack_140 = pppppppiStack_13c" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiStack_13c != pppppppiStack_144)" ( (binary_expression "pppppppiStack_13c != pppppppiStack_144" identifier != identifier) )) ;) })) }))))) }) (else_clause "else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" else (compound_statement "{\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" { (if_statement "if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }" if (parenthesized_expression "(1 < (int)ppppppiVar25)" ( (binary_expression "1 < (int)ppppppiVar25" number_literal < (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }" { (do_statement "do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);" do (compound_statement "{\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            }" { (expression_statement "pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160)" identifier = (cast_expression "(int *******)FUN_00043a6c(&pppppppiStack_160)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00043a6c(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))))) ;) (if_statement "if (pppppppiVar18 != (int *******)0x0) break;" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) (if_statement "if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;" if (parenthesized_expression "(((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))" ( (binary_expression "((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c)" (parenthesized_expression "((int)pppppppiVar19 <= (int)pppppppiStack_140)" ( (binary_expression "(int)pppppppiVar19 <= (int)pppppppiStack_140" (cast_expression "(int)pppppppiVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppiStack_140" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c)" ( (comma_expression "pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c" (assignment_expression "pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_13c << 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_13c << 1)" ( (binary_expression "(int)pppppppiStack_13c << 1" (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) , (binary_expression "(int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c" (binary_expression "(int)pppppppiStack_144 + (int)pppppppiVar24[0x17]" (cast_expression "(int)pppppppiStack_144" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppiVar24[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ]))) < (cast_expression "(int)pppppppiStack_13c" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_00052338;" goto statement_identifier ;)) (expression_statement "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier (argument_list "(&pppppppiStack_160,pppppppiVar29)" ( (pointer_expression "&pppppppiStack_160" & identifier) , identifier ))))) ;) }) while (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) (expression_statement "FUN_00043700(&pppppppiStack_160);" (call_expression "FUN_00043700(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" identifier = identifier) ;) }))) (labeled_statement "LAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;" statement_identifier : (expression_statement "pppppppiStack_144 = pppppppiVar18;" (assignment_expression "pppppppiStack_144 = pppppppiVar18" identifier = identifier) ;)) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppiVar25 = *pppppppiVar5;" (assignment_expression "ppppppiVar25 = *pppppppiVar5" identifier = (pointer_expression "*pppppppiVar5" * identifier)) ;) (expression_statement "pppppppiVar5[6] = (int ******)0x0;" (assignment_expression "pppppppiVar5[6] = (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppiVar25[0x20] = (int *****)pppppppiVar22;" (assignment_expression "ppppppiVar25[0x20] = (int *****)pppppppiVar22" (subscript_expression "ppppppiVar25[0x20]" identifier [ number_literal ]) = (cast_expression "(int *****)pppppppiVar22" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);" (assignment_expression "iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" identifier = (call_expression "FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" identifier (argument_list "(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" ( identifier , (pointer_expression "&pppppppiStack_160" & identifier) , (binary_expression "(uint)pppppppiVar22 | 0x800000" (cast_expression "(uint)pppppppiVar22" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "iStack_138 = iStack_138 + iVar7;" (assignment_expression "iStack_138 = iStack_138 + iVar7" identifier = (binary_expression "iStack_138 + iVar7" identifier + identifier)) ;) (expression_statement "pppppppiVar29 = pppppppiVar5;" (assignment_expression "pppppppiVar29 = pppppppiVar5" identifier = identifier) ;) (expression_statement "pppppppiVar20 = (int *******)apppppppiStack_174;" (assignment_expression "pppppppiVar20 = (int *******)apppppppiStack_174" identifier = (cast_expression "(int *******)apppppppiStack_174" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);" (assignment_expression "pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" identifier = (cast_expression "(int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" identifier (argument_list "(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" ( (pointer_expression "&pppppppiStack_160" & identifier) , identifier , identifier , identifier , number_literal , (pointer_expression "&pppppppiStack_178" & identifier) ))))) ;) (if_statement "if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" if (parenthesized_expression "(pppppppiStack_178 == (int *******)0x0)" ( (binary_expression "pppppppiStack_178 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }" { (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10)" identifier = (cast_expression "(int *******)(ppppppiVar25 + 0x10)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar25 + 0x10)" ( (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) )))) ;) (expression_statement "iStack_168 = CONCAT13(2,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(2,iStack_168._1_3_)" identifier = (call_expression "CONCAT13(2,iStack_168._1_3_)" identifier (argument_list "(2,iStack_168._1_3_)" ( number_literal , (field_expression "iStack_168._1_3_" identifier . field_identifier) )))) ;) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);" (assignment_expression "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" identifier = (cast_expression "(int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" identifier (argument_list "(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) , identifier , number_literal , number_literal , (pointer_expression "&ppppppiStack_16c" & identifier) ))))) ;) (expression_statement "ppppppiVar11 = ppppppiVar8;" (assignment_expression "ppppppiVar11 = ppppppiVar8" identifier = identifier) ;) (if_statement "if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;" if (parenthesized_expression "(pppppppiVar27 == (int *******)0x0)" ( (binary_expression "pppppppiVar27 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00052400;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" else (compound_statement "{\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" { (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (if_statement "if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }" if (parenthesized_expression "(pppppppiVar27 == (int *******)0x0)" ( (binary_expression "pppppppiVar27 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }" { (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (expression_statement "pppppppiVar24[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar24[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (goto_statement "goto LAB_000521dc;" goto statement_identifier ;) })) (expression_statement "iStack_168 = CONCAT13(2,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(2,iStack_168._1_3_)" identifier = (call_expression "CONCAT13(2,iStack_168._1_3_)" identifier (argument_list "(2,iStack_168._1_3_)" ( number_literal , (field_expression "iStack_168._1_3_" identifier . field_identifier) )))) ;) (expression_statement "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);" (assignment_expression "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" identifier = (cast_expression "(int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" identifier (argument_list "(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) , (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&ppppppiStack_16c" & identifier) ))))) ;) }))) (expression_statement "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10)" identifier = (cast_expression "(int *******)(ppppppiVar25 + 0x10)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppiVar25 + 0x10)" ( (binary_expression "ppppppiVar25 + 0x10" identifier + number_literal) )))) ;) (expression_statement "iStack_168 = CONCAT13(0x10,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(0x10,iStack_168._1_3_)" identifier = (call_expression "CONCAT13(0x10,iStack_168._1_3_)" identifier (argument_list "(0x10,iStack_168._1_3_)" ( number_literal , (field_expression "iStack_168._1_3_" identifier . field_identifier) )))) ;) (expression_statement "ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);" (assignment_expression "ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" identifier = (cast_expression "(int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" (parenthesized_expression "(*(code *)(iVar7 + 0x63ec))" ( (pointer_expression "*(code *)(iVar7 + 0x63ec)" * (cast_expression "(code *)(iVar7 + 0x63ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x63ec)" ( (binary_expression "iVar7 + 0x63ec" identifier + number_literal) )))) )) (argument_list "(ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" ( (binary_expression "ppppppiVar25 + 0xe" identifier + number_literal) , identifier , identifier , identifier , (pointer_expression "&ppppppiStack_16c" & identifier) ))))) ;) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" identifier = identifier) ;) (labeled_statement "LAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;" statement_identifier : (expression_statement "pppppppiVar19 = &ppppppiStack_16c;" (assignment_expression "pppppppiVar19 = &ppppppiStack_16c" identifier = (pointer_expression "&ppppppiStack_16c" & identifier)) ;)) (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (if_statement "if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" if (parenthesized_expression "((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0))" ( (binary_expression "(ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)" (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" ( (binary_expression "ppppppiVar8 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)" ( (comma_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) , (binary_expression "ppppppiVar11 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }" { (expression_statement "pppppppiVar24[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar24[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" else (compound_statement "{\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" { (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[1]" identifier = (cast_expression "(int *******)pppppppiVar27[1]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[1]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar24[0xd] = ppppppiVar11;" (assignment_expression "pppppppiVar24[0xd] = ppppppiVar11" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2)" identifier = (cast_expression "(int ******)(*pcVar32)((int)pppppppiVar29 << 2)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)((int)pppppppiVar29 << 2)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "((int)pppppppiVar29 << 2)" ( (binary_expression "(int)pppppppiVar29 << 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar27[3] = ppppppiVar25;" (assignment_expression "pppppppiVar27[3] = ppppppiVar25" (subscript_expression "pppppppiVar27[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);" (assignment_expression "pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2)" identifier = (cast_expression "(int *******)(*pcVar32)((int)pppppppiVar29 << 2)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar32)((int)pppppppiVar29 << 2)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "((int)pppppppiVar29 << 2)" ( (binary_expression "(int)pppppppiVar29 << 2" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pppppppiVar27[4] = (int ******)pppppppiVar20;" (assignment_expression "pppppppiVar27[4] = (int ******)pppppppiVar20" (subscript_expression "pppppppiVar27[4]" identifier [ number_literal ]) = (cast_expression "(int ******)pppppppiVar20" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "iVar7 = (int)pppppppiVar29 * 0xc;" (assignment_expression "iVar7 = (int)pppppppiVar29 * 0xc" identifier = (binary_expression "(int)pppppppiVar29 * 0xc" (cast_expression "(int)pppppppiVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);" (assignment_expression "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))(iVar7)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar27[5] = ppppppiVar8;" (assignment_expression "pppppppiVar27[5] = ppppppiVar8" (subscript_expression "pppppppiVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar11 = (int ******)(*pcVar32)(iVar7);" (assignment_expression "ppppppiVar11 = (int ******)(*pcVar32)(iVar7)" identifier = (cast_expression "(int ******)(*pcVar32)(iVar7)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar32)(iVar7)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "pppppppiVar27[6] = ppppppiVar11;" (assignment_expression "pppppppiVar27[6] = ppppppiVar11" (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" if (parenthesized_expression "((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0))" ( (binary_expression "(((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)" (parenthesized_expression "(((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0))" ( (binary_expression "((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)" (parenthesized_expression "((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0))" ( (binary_expression "(ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)" (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar20 != (int *******)0x0)" ( (binary_expression "pppppppiVar20 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) && (parenthesized_expression "(ppppppiVar8 != (int ******)0x0)" ( (binary_expression "ppppppiVar8 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "(ppppppiVar11 != (int ******)0x0)" ( (binary_expression "ppppppiVar11 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" { (expression_statement "ppppppiVar8 = pppppppiVar5[6];" (assignment_expression "ppppppiVar8 = pppppppiVar5[6]" identifier = (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);" (assignment_expression "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" identifier = (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiVar8 << 2)" ( (binary_expression "(int)ppppppiVar8 << 2" (cast_expression "(int)ppppppiVar8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pppppppiVar27[0x21] = ppppppiVar25;" (assignment_expression "pppppppiVar27[0x21] = ppppppiVar25" (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }" { (expression_statement "ppppppiVar11 = (int ******)0x0;" (assignment_expression "ppppppiVar11 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }" if (parenthesized_expression "(ppppppiVar8 != (int ******)0x0)" ( (binary_expression "ppppppiVar8 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }" { (do_statement "do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);" do (compound_statement "{\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                }" { (expression_statement "*ppppppiVar25 = (int *****)ppppppiVar11;" (assignment_expression "*ppppppiVar25 = (int *****)ppppppiVar11" (pointer_expression "*ppppppiVar25" * identifier) = (cast_expression "(int *****)ppppppiVar11" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);" (assignment_expression "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar11 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar11 + 1)" ( (binary_expression "(int)ppppppiVar11 + 1" (cast_expression "(int)ppppppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppiVar25 = ppppppiVar25 + 1;" (assignment_expression "ppppppiVar25 = ppppppiVar25 + 1" identifier = (binary_expression "ppppppiVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppiVar11 != ppppppiVar8)" ( (binary_expression "ppppppiVar11 != ppppppiVar8" identifier != identifier) )) ;) })) (expression_statement "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);" (call_expression "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27)" identifier (argument_list "(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x54d4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" if (parenthesized_expression "(pppppppiVar5[6] == (int ******)0x0)" ( (binary_expression "pppppppiVar5[6] == (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }" { (expression_statement "ppppppiVar25 = pppppppiVar27[0x21];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0x21]" identifier = (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);" statement_identifier : (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar25)" ( identifier ))) ;)) (expression_statement "pppppppiVar27[0x21] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0x21] = (int ******)0x0" (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) (else_clause "else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" else (compound_statement "{\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" { (expression_statement "ppppppiVar25 = pppppppiVar27[0x21];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0x21]" identifier = (subscript_expression "pppppppiVar27[0x21]" identifier [ number_literal ])) ;) (if_statement "if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }" if (parenthesized_expression "(*ppppppiVar25 == (int *****)0x0)" ( (binary_expression "*ppppppiVar25 == (int *****)0x0" (pointer_expression "*ppppppiVar25" * identifier) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }" { (expression_statement "ppppppiVar11 = (int ******)0x0;" (assignment_expression "ppppppiVar11 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppiVar8 = ppppppiVar25;" (assignment_expression "ppppppiVar8 = ppppppiVar25" identifier = identifier) ;) (do_statement "do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);" do (compound_statement "{\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  }" { (expression_statement "ppppppiVar8 = ppppppiVar8 + 1;" (assignment_expression "ppppppiVar8 = ppppppiVar8 + 1" identifier = (binary_expression "ppppppiVar8 + 1" identifier + number_literal)) ;) (expression_statement "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);" (assignment_expression "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1)" identifier = (cast_expression "(int ******)((int)ppppppiVar11 + 1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppiVar11 + 1)" ( (binary_expression "(int)ppppppiVar11 + 1" (cast_expression "(int)ppppppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;" if (parenthesized_expression "(ppppppiVar11 == pppppppiVar5[6])" ( (binary_expression "ppppppiVar11 == pppppppiVar5[6]" identifier == (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00052530;" goto statement_identifier ;)) }) while (parenthesized_expression "((int ******)*ppppppiVar8 == ppppppiVar11)" ( (binary_expression "(int ******)*ppppppiVar8 == ppppppiVar11" (cast_expression "(int ******)*ppppppiVar8" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppiVar8" * identifier)) == identifier) )) ;) })) }))) })) (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x68f4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar20 = pppppppiVar5;" (assignment_expression "pppppppiVar20 = pppppppiVar5" identifier = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" { (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23a54) + -0x6734)" ( (binary_expression "*(int *)(pcVar6 + 0x23a54) + -0x6734" (pointer_expression "*(int *)(pcVar6 + 0x23a54)" * (cast_expression "(int *)(pcVar6 + 0x23a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23a54)" ( (binary_expression "pcVar6 + 0x23a54" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" identifier (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" { (expression_statement "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);" (call_expression "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27)" identifier (argument_list "(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x55a0" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" ( (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x4ecc" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" identifier (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" ( (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" { (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (labeled_statement "LAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;" statement_identifier : (if_statement "if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;" if (parenthesized_expression "(pppppppiVar18 == pppppppiVar22)" ( (binary_expression "pppppppiVar18 == pppppppiVar22" identifier == identifier) )) (goto_statement "goto LAB_00052620;" goto statement_identifier ;))) (labeled_statement "LAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;" statement_identifier : (expression_statement "iVar23 = (int)pppppppiVar22 * 0xc;" (assignment_expression "iVar23 = (int)pppppppiVar22 * 0xc" identifier = (binary_expression "(int)pppppppiVar22 * 0xc" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;)) (if_statement "if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;" if (parenthesized_expression "(pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)" ( (binary_expression "pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0" (subscript_expression "pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1]" (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ]) [ (binary_expression "(int)pppppppiVar22 * 3 + 1" (binary_expression "(int)pppppppiVar22 * 3" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00052650;" goto statement_identifier ;)) (labeled_statement "LAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" statement_identifier : (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar22 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar22 + 1)" ( (binary_expression "(int)pppppppiVar22 + 1" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }" if (parenthesized_expression "(pppppppiVar18 == pppppppiVar22)" ( (binary_expression "pppppppiVar18 == pppppppiVar22" identifier == identifier) )) (compound_statement "{\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }" { (labeled_statement "LAB_00052620:\n                    if (bVar1) goto LAB_00052628;" statement_identifier : (if_statement "if (bVar1) goto LAB_00052628;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00052628;" goto statement_identifier ;))) (if_statement "if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;" if (parenthesized_expression "((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0))" ( (binary_expression "(((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)" (parenthesized_expression "(((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16)))" ( (binary_expression "((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))" (parenthesized_expression "((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0))" ( (binary_expression "(((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)" (parenthesized_expression "(((uint)pppppppiVar5[7] & 0x8000000) != 0)" ( (binary_expression "((uint)pppppppiVar5[7] & 0x8000000) != 0" (parenthesized_expression "((uint)pppppppiVar5[7] & 0x8000000)" ( (binary_expression "(uint)pppppppiVar5[7] & 0x8000000" (cast_expression "(uint)pppppppiVar5[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar5[7]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) || (parenthesized_expression "(pppppppiVar5[6] == (int ******)0x0)" ( (binary_expression "pppppppiVar5[6] == (int ******)0x0" (subscript_expression "pppppppiVar5[6]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) || (parenthesized_expression "(-1 < *(char *)(pppppppiVar27 + 0x16))" ( (binary_expression "-1 < *(char *)(pppppppiVar27 + 0x16)" number_literal < (pointer_expression "*(char *)(pppppppiVar27 + 0x16)" * (cast_expression "(char *)(pppppppiVar27 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar27 + 0x16)" ( (binary_expression "pppppppiVar27 + 0x16" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(pppppppiVar27[0x13] == (int ******)0x0)" ( (binary_expression "pppppppiVar27[0x13] == (int ******)0x0" (subscript_expression "pppppppiVar27[0x13]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00052998;" goto statement_identifier ;)) (expression_statement "ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);" (assignment_expression "ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" identifier = (cast_expression "(int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c08)" * (pointer_expression "*(code **)(pcVar6 + 0x23c08)" * (cast_expression "(code **)(pcVar6 + 0x23c08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c08)" ( (binary_expression "pcVar6 + 0x23c08" identifier + number_literal) ))))) )) (argument_list "((int)pppppppiVar22 * 0xc)" ( (binary_expression "(int)pppppppiVar22 * 0xc" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "pppppppiVar27[7] = ppppppiVar25;" (assignment_expression "pppppppiVar27[7] = ppppppiVar25" (subscript_expression "pppppppiVar27[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" { (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" if (parenthesized_expression "(pppppppiVar22 != (int *******)0x0)" ( (binary_expression "pppppppiVar22 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }" { (expression_statement "puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);" (assignment_expression "puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppppppiVar25 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar25 + iVar7)" ( (binary_expression "(int)ppppppiVar25 + iVar7" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);" (assignment_expression "pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar18 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar18 + 1)" ( (binary_expression "(int)pppppppiVar18 + 1" (cast_expression "(int)pppppppiVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar12[1] = 0;" (assignment_expression "puVar12[1] = 0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[2] = 0;" (assignment_expression "puVar12[2] = 0" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[3] = 0;" (assignment_expression "puVar12[3] = 0" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[4] = 0;" (assignment_expression "puVar12[4] = 0" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[5] = 0;" (assignment_expression "puVar12[5] = 0" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[6] = 0;" (assignment_expression "puVar12[6] = 0" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[7] = 0;" (assignment_expression "puVar12[7] = 0" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[8] = 0;" (assignment_expression "puVar12[8] = 0" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[9] = 0;" (assignment_expression "puVar12[9] = 0" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[10] = 0;" (assignment_expression "puVar12[10] = 0" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12[0xb] = 0;" (assignment_expression "puVar12[0xb] = 0" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = iVar7 + 0xc;" (assignment_expression "iVar7 = iVar7 + 0xc" identifier = (binary_expression "iVar7 + 0xc" identifier + number_literal)) ;) (if_statement "if (pppppppiVar29 <= pppppppiVar18) break;" if (parenthesized_expression "(pppppppiVar29 <= pppppppiVar18)" ( (binary_expression "pppppppiVar29 <= pppppppiVar18" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "ppppppiVar25 = pppppppiVar27[7];" (assignment_expression "ppppppiVar25 = pppppppiVar27[7]" identifier = (subscript_expression "pppppppiVar27[7]" identifier [ number_literal ])) ;) })) (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" identifier = (pointer_expression "*(int *)(pcVar6 + 0x239fc)" * (cast_expression "(int *)(pcVar6 + 0x239fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x239fc)" ( (binary_expression "pcVar6 + 0x239fc" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }" if (parenthesized_expression "(pppppppiVar29 != (int *******)0x0)" ( (binary_expression "pppppppiVar29 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }" { (expression_statement "ppppppiVar25 = pppppppiVar27[6];" (assignment_expression "ppppppiVar25 = pppppppiVar27[6]" identifier = (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ])) ;) (expression_statement "pppppppiStack_188 = (int *******)0x0;" (assignment_expression "pppppppiStack_188 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iStack_190 = 0;" (assignment_expression "iStack_190 = 0" identifier = number_literal) ;) (while_statement "while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }" while (parenthesized_expression "(pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1)" ( (comma_expression "pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1" (assignment_expression "pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)" identifier = (pointer_expression "*(int ********)((int)ppppppiVar25 + iStack_190 + 8)" * (cast_expression "(int ********)((int)ppppppiVar25 + iStack_190 + 8)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 8)" ( (binary_expression "(int)ppppppiVar25 + iStack_190 + 8" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) , (binary_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1" (pointer_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4)" * (cast_expression "(int *)((int)ppppppiVar25 + iStack_190 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 4)" ( (binary_expression "(int)ppppppiVar25 + iStack_190 + 4" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) < number_literal)) )) (compound_statement "{\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }" { (labeled_statement "LAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);" statement_identifier : (expression_statement "pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);" (assignment_expression "pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiStack_188 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiStack_188 + 1)" ( (binary_expression "(int)pppppppiStack_188 + 1" (cast_expression "(int)pppppppiStack_188" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "iStack_190 = iStack_190 + 0xc;" (assignment_expression "iStack_190 = iStack_190 + 0xc" identifier = (binary_expression "iStack_190 + 0xc" identifier + number_literal)) ;) (if_statement "if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;" if (parenthesized_expression "(pppppppiVar29 <= pppppppiStack_188)" ( (binary_expression "pppppppiVar29 <= pppppppiStack_188" identifier <= identifier) )) (goto_statement "goto LAB_00052998;" goto statement_identifier ;)) })) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar18 = pppppppiVar20;" (assignment_expression "pppppppiVar18 = pppppppiVar20" identifier = identifier) ;) (while_statement "while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }" while (parenthesized_expression "(pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0)" ( (comma_expression "pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0" (assignment_expression "pppppppiVar29 = pppppppiStack_188" identifier = identifier) , (comma_expression "iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0" (assignment_expression "iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" identifier = (call_expression "(*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" (parenthesized_expression "(*(code *)(iVar7 + 0x3360))" ( (pointer_expression "*(code *)(iVar7 + 0x3360)" * (cast_expression "(code *)(iVar7 + 0x3360)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3360)" ( (binary_expression "iVar7 + 0x3360" identifier + number_literal) )))) )) (argument_list "(pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" ( (binary_expression "pppppppiVar27[7] + (int)*pppppppiVar18 * 3" (subscript_expression "pppppppiVar27[7]" identifier [ number_literal ]) + (binary_expression "(int)*pppppppiVar18 * 3" (cast_expression "(int)*pppppppiVar18" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppiVar18" * identifier)) * number_literal)) , identifier )))) , (binary_expression "iVar13 != 0" identifier != number_literal))) )) (compound_statement "{\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }" { (expression_statement "ppppppiVar25 = pppppppiVar27[6];" (assignment_expression "ppppppiVar25 = pppppppiVar27[6]" identifier = (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ])) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar18 = pppppppiVar18 + 1;" (assignment_expression "pppppppiVar18 = pppppppiVar18 + 1" identifier = (binary_expression "pppppppiVar18 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }" if (parenthesized_expression "(*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23)" ( (binary_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23" (pointer_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4)" * (cast_expression "(int *)((int)ppppppiVar25 + iStack_190 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 4)" ( (binary_expression "(int)ppppppiVar25 + iStack_190 + 4" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) <= identifier) )) (compound_statement "{\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }" { (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00052974;" goto statement_identifier ;) })) })) (expression_statement "pppppppiVar18 = (int *******)0xc;" (assignment_expression "pppppppiVar18 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;" statement_identifier : (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (if_statement "if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }" if (parenthesized_expression "(((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0))" ( (binary_expression "((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)" (parenthesized_expression "((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0))" ( (binary_expression "(((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)" (parenthesized_expression "(((uint)pppppppiVar24[0x16] & 0x20000000) != 0)" ( (binary_expression "((uint)pppppppiVar24[0x16] & 0x20000000) != 0" (parenthesized_expression "((uint)pppppppiVar24[0x16] & 0x20000000)" ( (binary_expression "(uint)pppppppiVar24[0x16] & 0x20000000" (cast_expression "(uint)pppppppiVar24[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar24[0x16]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(pppppppiVar5[5] == (int ******)0x0)" ( (binary_expression "pppppppiVar5[5] == (int ******)0x0" (subscript_expression "pppppppiVar5[5]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }" { (expression_statement "pppppppiVar20 = (int *******)pppppppiVar24[2];" (assignment_expression "pppppppiVar20 = (int *******)pppppppiVar24[2]" identifier = (cast_expression "(int *******)pppppppiVar24[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar24[2]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" if (parenthesized_expression "(pppppppiVar20 != (int *******)0x0)" ( (binary_expression "pppppppiVar20 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" { (expression_statement "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);" (assignment_expression "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" identifier = (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" ( (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2fcc" (pointer_expression "*(int *)(pcVar6 + 0x23694)" * (cast_expression "(int *)(pcVar6 + 0x23694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x23694)" ( (binary_expression "pcVar6 + 0x23694" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);" (assignment_expression "uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd)" identifier = (call_expression "(uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(byte *)(*pppppppiVar24 + 1) < 0xd)" ( (binary_expression "*(byte *)(*pppppppiVar24 + 1) < 0xd" (pointer_expression "*(byte *)(*pppppppiVar24 + 1)" * (cast_expression "(byte *)(*pppppppiVar24 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppiVar24 + 1)" ( (binary_expression "*pppppppiVar24 + 1" (pointer_expression "*pppppppiVar24" * identifier) + number_literal) )))) < number_literal) )))) ;) (if_statement "if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }" { (expression_statement "pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();" (assignment_expression "pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" identifier = (cast_expression "(int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" (parenthesized_expression "(*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))" ( (pointer_expression "*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97))" * (parenthesized_expression "(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97))" ( (binary_expression "pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" identifier + (cast_expression "(int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" ( (binary_expression "pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97" (subscript_expression "pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)]" identifier [ (pointer_expression "*(byte *)(*pppppppiVar24 + 1)" * (cast_expression "(byte *)(*pppppppiVar24 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppiVar24 + 1)" ( (binary_expression "*pppppppiVar24 + 1" (pointer_expression "*pppppppiVar24" * identifier) + number_literal) )))) ]) + number_literal) )))) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pppppppiVar27;" return identifier ;) })) (goto_statement "goto switchD_00052dc0_caseD_0;" goto statement_identifier ;) })) (expression_statement "pppppppiVar24[0x17] = (int ******)0x1;" (assignment_expression "pppppppiVar24[0x17] = (int ******)0x1" (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ]) = (cast_expression "(int ******)0x1" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0x9f" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" * (cast_expression "(byte *)(pppppppiVar24 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar24 + 0x16)" ( (binary_expression "pppppppiVar24 + 0x16" identifier + number_literal) )))) & number_literal) | (binary_expression "(0 < (int)pppppppiVar24[0x13]) << 6" (parenthesized_expression "(0 < (int)pppppppiVar24[0x13])" ( (binary_expression "0 < (int)pppppppiVar24[0x13]" number_literal < (cast_expression "(int)pppppppiVar24[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x13]" identifier [ number_literal ]))) )) << number_literal))) ;) })) (expression_statement "ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];" (assignment_expression "ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7]" identifier = (cast_expression "(int ******)pppppppiVar24[0xd][3][7]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppiVar24[0xd][3][7]" (subscript_expression "pppppppiVar24[0xd][3]" (subscript_expression "pppppppiVar24[0xd]" identifier [ number_literal ]) [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppiVar24[0x12] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x12] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);" (assignment_expression "pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" identifier = (cast_expression "(int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" ( (binary_expression "pppppppiVar24[6] + (int)ppppppiVar25 * 3" (subscript_expression "pppppppiVar24[6]" identifier [ number_literal ]) + (binary_expression "(int)ppppppiVar25 * 3" (cast_expression "(int)ppppppiVar25" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);" (assignment_expression "pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18)" identifier = (cast_expression "(int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000469e0(pppppppiVar19,pppppppiVar18)" identifier (argument_list "(pppppppiVar19,pppppppiVar18)" ( identifier , identifier ))))) ;) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" identifier = identifier) ;) (expression_statement "apppppppiStack_174[0] = pppppppiVar29;" (assignment_expression "apppppppiStack_174[0] = pppppppiVar29" (subscript_expression "apppppppiStack_174[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }" if (parenthesized_expression "(pppppppiVar29 == (int *******)0x0)" ( (binary_expression "pppppppiVar29 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }" { (if_statement "if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }" if (parenthesized_expression "((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168))" ( (binary_expression "(0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)" (parenthesized_expression "(0 < (int)pppppppiVar24[0x13])" ( (binary_expression "0 < (int)pppppppiVar24[0x13]" number_literal < (cast_expression "(int)pppppppiVar24[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar24[0x13]" identifier [ number_literal ]))) )) && (parenthesized_expression "(0 < iStack_168)" ( (binary_expression "0 < iStack_168" number_literal < identifier) ))) )) (compound_statement "{\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = iStack_168;" (assignment_expression "iVar7 = iStack_168" identifier = identifier) ;) (do_statement "do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);" do (compound_statement "{\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          }" { (expression_statement "ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;" (assignment_expression "ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2" identifier = (binary_expression "*pppppppiVar24 + piStack_164[iVar23] * 2" (pointer_expression "*pppppppiVar24" * identifier) + (binary_expression "piStack_164[iVar23] * 2" (subscript_expression "piStack_164[iVar23]" identifier [ identifier ]) * number_literal))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "piVar14 = piStack_164;" (assignment_expression "piVar14 = piStack_164" identifier = identifier) ;) (if_statement "if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" if (parenthesized_expression "(*(char *)(ppppppiVar25 + 1) == '\x04')" ( (binary_expression "*(char *)(ppppppiVar25 + 1) == '\x04'" (pointer_expression "*(char *)(ppppppiVar25 + 1)" * (cast_expression "(char *)(ppppppiVar25 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar25 + 1)" ( (binary_expression "ppppppiVar25 + 1" identifier + number_literal) )))) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }" { (while_statement "while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }" while (parenthesized_expression "((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)))" ( (parenthesized_expression "(ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))" ( (comma_expression "ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)" (assignment_expression "ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2" identifier = (binary_expression "*pppppppiVar24 + *piVar14 * 2" (pointer_expression "*pppppppiVar24" * identifier) + (binary_expression "*piVar14 * 2" (pointer_expression "*piVar14" * identifier) * number_literal))) , (binary_expression "*(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)" (binary_expression "*(char *)(ppppppiVar8 + 1) != '\t'" (pointer_expression "*(char *)(ppppppiVar8 + 1)" * (cast_expression "(char *)(ppppppiVar8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar8 + 1)" ( (binary_expression "ppppppiVar8 + 1" identifier + number_literal) )))) != (char_literal "'\t'" ' escape_sequence ')) || (parenthesized_expression "(*ppppppiVar8 != *ppppppiVar25)" ( (binary_expression "*ppppppiVar8 != *ppppppiVar25" (pointer_expression "*ppppppiVar8" * identifier) != (pointer_expression "*ppppppiVar25" * identifier)) )))) )) )) (compound_statement "{\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }" { (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == iVar13) goto LAB_00052a54;" if (parenthesized_expression "(iVar7 == iVar13)" ( (binary_expression "iVar7 == iVar13" identifier == identifier) )) (goto_statement "goto LAB_00052a54;" goto statement_identifier ;)) })) (expression_statement "pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];" (assignment_expression "pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" identifier = (cast_expression "(int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" * (subscript_expression "pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" (subscript_expression "pppppppiVar24[5]" identifier [ number_literal ]) [ (binary_expression "piStack_164[iVar23] * 3 + 2" (binary_expression "piStack_164[iVar23] * 3" (subscript_expression "piStack_164[iVar23]" identifier [ identifier ]) * number_literal) + number_literal) ])))) ;) (expression_statement "pppppppiVar27 = pppppppiVar20;" (assignment_expression "pppppppiVar27 = pppppppiVar20" identifier = identifier) ;) (expression_statement "iVar13 = FUN_00045230(iVar7,&piStack_164);" (assignment_expression "iVar13 = FUN_00045230(iVar7,&piStack_164)" identifier = (call_expression "FUN_00045230(iVar7,&piStack_164)" identifier (argument_list "(iVar7,&piStack_164)" ( identifier , (pointer_expression "&piStack_164" & identifier) )))) ;) (if_statement "if (iVar13 != 0) goto LAB_00052a54;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00052a54;" goto statement_identifier ;)) (expression_statement "pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);" (assignment_expression "pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" identifier = (cast_expression "(int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" ( (binary_expression "pppppppiVar24[6] + (int)pppppppiVar27 * 3" (subscript_expression "pppppppiVar24[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppiVar27 * 3" (cast_expression "(int)pppppppiVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;" (assignment_expression "pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)" identifier = (cast_expression "(int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000459ac(pppppppiVar19,pppppppiVar18)" identifier (argument_list "(pppppppiVar19,pppppppiVar18)" ( identifier , identifier ))))) ;) (if_statement "if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;" if (parenthesized_expression "(pppppppiVar27 != (int *******)0x0)" ( (binary_expression "pppppppiVar27 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00052abc;" goto statement_identifier ;)) (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = iStack_168;" (assignment_expression "iVar7 = iStack_168" identifier = identifier) ;) }) (else_clause "else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" else (compound_statement "{\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" { (labeled_statement "LAB_00052a54:\n                              iVar23 = iVar23 + 1;" statement_identifier : (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;)) }))) }) while (parenthesized_expression "(iVar23 < iVar7)" ( (binary_expression "iVar23 < iVar7" identifier < identifier) )) ;) })) (expression_statement "pppppppiVar18 = pppppppiVar24;" (assignment_expression "pppppppiVar18 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );" (assignment_expression "ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" identifier = (cast_expression "(int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[9] = ppppppiVar25;" (assignment_expression "pppppppiVar24[9] = ppppppiVar25" (subscript_expression "pppppppiVar24[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar27 = apppppppiStack_174[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_174[0]" identifier = (subscript_expression "apppppppiStack_174[0]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }" { (if_statement "if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" if (parenthesized_expression "(((uint)ppppppiVar25[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)ppppppiVar25[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)ppppppiVar25[0xd] & 0x1000000)" ( (binary_expression "(uint)ppppppiVar25[0xd] & 0x1000000" (cast_expression "(uint)ppppppiVar25[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar25[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }" { (expression_statement "pppppppiVar24[0xc] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xc] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar24[0xb] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xb] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar24[10] = ppppppiVar25;" (assignment_expression "pppppppiVar24[10] = ppppppiVar25" (subscript_expression "pppppppiVar24[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar19 = pppppppiVar20;" (assignment_expression "pppppppiVar19 = pppppppiVar20" identifier = identifier) ;) }) (else_clause "else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" else (compound_statement "{\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" { (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" identifier = (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[10] = ppppppiVar25;" (assignment_expression "pppppppiVar24[10] = ppppppiVar25" (subscript_expression "pppppppiVar24[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" identifier = (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[0xb] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xb] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar18 = pppppppiVar24;" (assignment_expression "pppppppiVar18 = pppppppiVar24" identifier = identifier) ;) (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" identifier = (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" identifier (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppiVar24[0xc] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xc] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar27 = apppppppiStack_174[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_174[0]" identifier = (subscript_expression "apppppppiStack_174[0]" identifier [ number_literal ])) ;) (if_statement "if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;" if (parenthesized_expression "(((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0))" ( (binary_expression "((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)" (parenthesized_expression "((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0))" ( (binary_expression "(pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)" (parenthesized_expression "(pppppppiVar24[10] == (int ******)0x0)" ( (binary_expression "pppppppiVar24[10] == (int ******)0x0" (subscript_expression "pppppppiVar24[10]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppiVar24[0xb] == (int ******)0x0)" ( (binary_expression "pppppppiVar24[0xb] == (int ******)0x0" (subscript_expression "pppppppiVar24[0xb]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) || (parenthesized_expression "(pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)" ( (comma_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) , (binary_expression "ppppppiVar25 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00052abc;" goto statement_identifier ;)) }))) (expression_statement "(*pcVar32)(piStack_164);" (call_expression "(*pcVar32)(piStack_164)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(piStack_164)" ( identifier ))) ;) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" identifier = identifier) ;) })) })) (labeled_statement "LAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;" statement_identifier : (expression_statement "ppppppiVar25 = *pppppppiVar5;" (assignment_expression "ppppppiVar25 = *pppppppiVar5" identifier = (pointer_expression "*pppppppiVar5" * identifier)) ;)) (expression_statement "pppppiVar17 = ppppppiVar25[0xe];" (assignment_expression "pppppiVar17 = ppppppiVar25[0xe]" identifier = (subscript_expression "ppppppiVar25[0xe]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (expression_statement "pppppppiStack_178 = pppppppiVar27;" (assignment_expression "pppppppiStack_178 = pppppppiVar27" identifier = identifier) ;) (if_statement "if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }" if (parenthesized_expression "(pppppiVar17 != (int *****)0x0)" ( (binary_expression "pppppiVar17 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }" { (do_statement "do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);" do (compound_statement "{\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        }" { (expression_statement "pppppiVar17 = (int *****)*pppppiVar17;" (assignment_expression "pppppiVar17 = (int *****)*pppppiVar17" identifier = (cast_expression "(int *****)*pppppiVar17" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppiVar17" * identifier))) ;) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(pppppiVar17 != (int *****)0x0)" ( (binary_expression "pppppiVar17 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) })) (expression_statement "ppppppiVar25[0x10] = (int *****)0x1f;" (assignment_expression "ppppppiVar25[0x10] = (int *****)0x1f" (subscript_expression "ppppppiVar25[0x10]" identifier [ number_literal ]) = (cast_expression "(int *****)0x1f" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar25[0xe] = (int *****)0x0;" (assignment_expression "ppppppiVar25[0xe] = (int *****)0x0" (subscript_expression "ppppppiVar25[0xe]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar25[0xd] = (int *****)0x0;" (assignment_expression "ppppppiVar25[0xd] = (int *****)0x0" (subscript_expression "ppppppiVar25[0xd]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "(*pcVar32)(ppppppiVar25[4]);" (call_expression "(*pcVar32)(ppppppiVar25[4])" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(ppppppiVar25[4])" ( (subscript_expression "ppppppiVar25[4]" identifier [ number_literal ]) ))) ;) (expression_statement "ppppppiVar25[4] = (int *****)0x0;" (assignment_expression "ppppppiVar25[4] = (int *****)0x0" (subscript_expression "ppppppiVar25[4]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "FUN_00044d40(&pppppppiStack_160);" (call_expression "FUN_00044d40(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar27 = pppppppiStack_178;" (assignment_expression "pppppppiVar27 = pppppppiStack_178" identifier = identifier) ;) (if_statement "if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;" if (parenthesized_expression "(pppppppiStack_178 != (int *******)0x0)" ( (binary_expression "pppppppiStack_178 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto joined_r0x00052b2c;" goto statement_identifier ;)) (goto_statement "goto LAB_000526ec;" goto statement_identifier ;) })) (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;) (goto_statement "goto LAB_00052c64;" goto statement_identifier ;) })) (goto_statement "goto LAB_000525f4;" goto statement_identifier ;) })) })) })) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;) })) (labeled_statement "LAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;" statement_identifier : (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (goto_statement "goto LAB_000521dc;" goto statement_identifier ;) })) (expression_statement "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier = (cast_expression "(int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00043278(&pppppppiStack_160,pppppppiVar29)" identifier (argument_list "(&pppppppiStack_160,pppppppiVar29)" ( (pointer_expression "&pppppppiStack_160" & identifier) , identifier ))))) ;) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }" if (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" ( (binary_expression "pppppppiVar18 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }" { (expression_statement "pppppppiVar18 = (int *******)(uint)bStack_115;" (assignment_expression "pppppppiVar18 = (int *******)(uint)bStack_115" identifier = (cast_expression "(int *******)(uint)bStack_115" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_115" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "ppppppiVar25 = pppppppiVar24[0x17];" (assignment_expression "ppppppiVar25 = pppppppiVar24[0x17]" identifier = (subscript_expression "pppppppiVar24[0x17]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar4 = pppppppiVar29;" (assignment_expression "pppppppiVar4 = pppppppiVar29" identifier = identifier) ;) (goto_statement "goto LAB_00052158;" goto statement_identifier ;) })) (labeled_statement "LAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;" statement_identifier : (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" identifier = (cast_expression "(int *******)*pppppppiVar5" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar5" * identifier))) ;)) (expression_statement "pppppppiStack_178 = pppppppiVar18;" (assignment_expression "pppppppiStack_178 = pppppppiVar18" identifier = identifier) ;) (labeled_statement "LAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];" statement_identifier : (expression_statement "ppppppiVar25 = pppppppiVar27[0xe];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0xe]" identifier = (subscript_expression "pppppppiVar27[0xe]" identifier [ number_literal ])) ;)) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }" if (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }" { (do_statement "do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);" do (compound_statement "{\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        }" { (expression_statement "ppppppiVar25 = (int ******)*ppppppiVar25;" (assignment_expression "ppppppiVar25 = (int ******)*ppppppiVar25" identifier = (cast_expression "(int ******)*ppppppiVar25" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppiVar25" * identifier))) ;) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" ( (binary_expression "ppppppiVar25 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) ;) })) (expression_statement "pppppppiVar27[0x10] = (int ******)0x1f;" (assignment_expression "pppppppiVar27[0x10] = (int ******)0x1f" (subscript_expression "pppppppiVar27[0x10]" identifier [ number_literal ]) = (cast_expression "(int ******)0x1f" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27[0xe] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0xe] = (int ******)0x0" (subscript_expression "pppppppiVar27[0xe]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar27[0xd]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "(*pcVar32)(pppppppiVar27[4]);" (call_expression "(*pcVar32)(pppppppiVar27[4])" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppppiVar27[4])" ( (subscript_expression "pppppppiVar27[4]" identifier [ number_literal ]) ))) ;) (expression_statement "pppppppiVar27[4] = (int ******)0x0;" (assignment_expression "pppppppiVar27[4] = (int ******)0x0" (subscript_expression "pppppppiVar27[4]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "FUN_00044d40(&pppppppiStack_160);" (call_expression "FUN_00044d40(&pppppppiStack_160)" identifier (argument_list "(&pppppppiStack_160)" ( (pointer_expression "&pppppppiStack_160" & identifier) ))) ;) (expression_statement "pppppppiVar18 = pppppppiVar29;" (assignment_expression "pppppppiVar18 = pppppppiVar29" identifier = identifier) ;) (labeled_statement "joined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" statement_identifier : (if_statement "if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" { (expression_statement "(**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);" (call_expression "(**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d08))" ( (pointer_expression "**(code **)(pcVar6 + 0x23d08)" * (pointer_expression "*(code **)(pcVar6 + 0x23d08)" * (cast_expression "(code **)(pcVar6 + 0x23d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23d08)" ( (binary_expression "pcVar6 + 0x23d08" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar24 + 0x22)" ( (binary_expression "pppppppiVar24 + 0x22" identifier + number_literal) ))) ;) }))) }) (else_clause "else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" else (compound_statement "{\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" { (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);" (assignment_expression "iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0)" identifier = (call_expression "(**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cb0))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cb0)" * (pointer_expression "*(code **)(pcVar6 + 0x23cb0)" * (cast_expression "(code **)(pcVar6 + 0x23cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cb0)" ( (binary_expression "pcVar6 + 0x23cb0" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar24 + 0x22,0)" ( (binary_expression "pppppppiVar24 + 0x22" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar7 != 0) goto LAB_000526c8;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000526c8;" goto statement_identifier ;)) (if_statement "if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;" if (parenthesized_expression "(pppppppiStack_178 == (int *******)0x0)" ( (binary_expression "pppppppiStack_178 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000520dc;" goto statement_identifier ;)) }))) }) (else_clause "else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" else (compound_statement "{\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" { (labeled_statement "LAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;" statement_identifier : (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" identifier = (cast_expression "(int *******)0xc" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (expression_statement "FUN_000499a0(pppppppiVar24);" (call_expression "FUN_000499a0(pppppppiVar24)" identifier (argument_list "(pppppppiVar24)" ( identifier ))) ;) (expression_statement "*pppppppiVar5 = (int ******)0x0;" (assignment_expression "*pppppppiVar5 = (int ******)0x0" (pointer_expression "*pppppppiVar5" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar5[1] = (int ******)0x0;" (assignment_expression "pppppppiVar5[1] = (int ******)0x0" (subscript_expression "pppppppiVar5[1]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar27 = pppppppiStack_178;" (assignment_expression "pppppppiVar27 = pppppppiStack_178" identifier = identifier) ;) (labeled_statement "LAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }" statement_identifier : (if_statement "if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }" if (parenthesized_expression "(uStack_10c == *puVar31)" ( (binary_expression "uStack_10c == *puVar31" identifier == (pointer_expression "*puVar31" * identifier)) )) (compound_statement "{\n    return pppppppiVar27;\n  }" { (return_statement "return pppppppiVar27;" return identifier ;) }))) (expression_statement "uVar28 = uStack_10c;" (assignment_expression "uVar28 = uStack_10c" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar6 + 0x23c84))();" (call_expression "(**(code **)(pcVar6 + 0x23c84))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c84))" ( (pointer_expression "**(code **)(pcVar6 + 0x23c84)" * (pointer_expression "*(code **)(pcVar6 + 0x23c84)" * (cast_expression "(code **)(pcVar6 + 0x23c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23c84)" ( (binary_expression "pcVar6 + 0x23c84" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "switchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);" statement_identifier : (expression_statement "pcVar6 = *(code **)(pcVar6 + 0x23adc);" (assignment_expression "pcVar6 = *(code **)(pcVar6 + 0x23adc)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x23adc)" * (cast_expression "(code **)(pcVar6 + 0x23adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23adc)" ( (binary_expression "pcVar6 + 0x23adc" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)(pppppppiVar20 + 7)" * (cast_expression "(byte *)(pppppppiVar20 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 7)" ( (binary_expression "pppppppiVar20 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1" (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6" (pointer_expression "*(byte *)(pppppppiVar20 + 7)" * (cast_expression "(byte *)(pppppppiVar20 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar20 + 7)" ( (binary_expression "pppppppiVar20 + 7" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" ( (binary_expression "((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3" (parenthesized_expression "((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f)" ( (binary_expression "(uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f" (call_expression "(uint)(**(int **)(pcVar6 + 0x22a58) << 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(pcVar6 + 0x22a58) << 6)" ( (binary_expression "**(int **)(pcVar6 + 0x22a58) << 6" (pointer_expression "**(int **)(pcVar6 + 0x22a58)" * (pointer_expression "*(int **)(pcVar6 + 0x22a58)" * (cast_expression "(int **)(pcVar6 + 0x22a58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x22a58)" ( (binary_expression "pcVar6 + 0x22a58" identifier + number_literal) ))))) << number_literal) ))) >> number_literal) )) << number_literal) )))) | number_literal)) ;) (expression_statement "iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);" (assignment_expression "iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18)" identifier = (call_expression "FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18)" identifier (argument_list "(pppppppiVar20,uVar28,pppppppiVar18)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n    return (int *******)0x0;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *******)0x0;\n  }" { (return_statement "return (int *******)0x0;" return (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal) ;) })) (expression_statement "pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);" (assignment_expression "pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" identifier = (cast_expression "(int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x22c8c))" ( (pointer_expression "**(code **)(pcVar6 + 0x22c8c)" * (pointer_expression "*(code **)(pcVar6 + 0x22c8c)" * (cast_expression "(code **)(pcVar6 + 0x22c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x22c8c)" ( (binary_expression "pcVar6 + 0x22c8c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" ( number_literal , (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8" (pointer_expression "*(int *)(pcVar6 + 0x22694)" * (cast_expression "(int *)(pcVar6 + 0x22694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x22694)" ( (binary_expression "pcVar6 + 0x22694" identifier + number_literal) )))) + number_literal) + (pointer_expression "*(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" * (cast_expression "(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" ( (binary_expression "iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084" (binary_expression "iVar10 * 4 + *(int *)(pcVar6 + 0x22694)" (binary_expression "iVar10 * 4" identifier * number_literal) + (pointer_expression "*(int *)(pcVar6 + 0x22694)" * (cast_expression "(int *)(pcVar6 + 0x22694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x22694)" ( (binary_expression "pcVar6 + 0x22694" identifier + number_literal) ))))) + number_literal) ))))) , number_literal ))))) ;) (return_statement "return pppppppiVar27;" return identifier ;) (labeled_statement "LAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" statement_identifier : (while_statement "while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" { (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (pppppppiVar27[6][1] != (int *****)0x0) break;" if (parenthesized_expression "(pppppppiVar27[6][1] != (int *****)0x0)" ( (binary_expression "pppppppiVar27[6][1] != (int *****)0x0" (subscript_expression "pppppppiVar27[6][1]" (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ]) [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00052650:\n    pppppppiVar29 = pppppppiVar27;" statement_identifier : (expression_statement "pppppppiVar29 = pppppppiVar27;" (assignment_expression "pppppppiVar29 = pppppppiVar27" identifier = identifier) ;)) (expression_statement "pppppppiVar20 = pppppppiVar22;" (assignment_expression "pppppppiVar20 = pppppppiVar22" identifier = identifier) ;) (expression_statement "pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);" (assignment_expression "pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" identifier = (cast_expression "(int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" (parenthesized_expression "(*(code *)(iVar7 + 0x5bf8))" ( (pointer_expression "*(code *)(iVar7 + 0x5bf8)" * (cast_expression "(code *)(iVar7 + 0x5bf8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5bf8)" ( (binary_expression "iVar7 + 0x5bf8" identifier + number_literal) )))) )) (argument_list "(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000521d4;" goto statement_identifier ;)) (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1)" identifier = (cast_expression "(int *******)((int)pppppppiVar22 + 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppiVar22 + 1)" ( (binary_expression "(int)pppppppiVar22 + 1" (cast_expression "(int)pppppppiVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }" if (parenthesized_expression "(*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0)" ( (binary_expression "*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0" (pointer_expression "*(int *)((int)pppppppiVar27[6] + iVar23 + 4)" * (cast_expression "(int *)((int)pppppppiVar27[6] + iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar27[6] + iVar23 + 4)" ( (binary_expression "(int)pppppppiVar27[6] + iVar23 + 4" (binary_expression "(int)pppppppiVar27[6] + iVar23" (cast_expression "(int)pppppppiVar27[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar27[6]" identifier [ number_literal ])) + identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }" { (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_000525ec;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(piStack_164);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(piStack_164)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" ( (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" * (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" * (cast_expression "(code **)(pcVar6 + 0x23cd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x23cd8)" ( (binary_expression "pcVar6 + 0x23cd8" identifier + number_literal) ))))) )) (argument_list "(piStack_164)" ( identifier ))) ;) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" identifier = (cast_expression "(int *******)pppppppiVar27[2]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar27[2]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" if (parenthesized_expression "(pppppppiVar18 != pppppppiVar22)" ( (binary_expression "pppppppiVar18 != pppppppiVar22" identifier != identifier) )) (compound_statement "{\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_000525f4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00052614;" 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 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 * IDENT)) , (parameter_declaration TYPE (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 * 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 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 * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE 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 * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 * (array_declarator IDENT [ LIT ])))))))) ;) (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 (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 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 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 * 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 (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 * 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 * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (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 * 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 * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (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 *)))))))) ) (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 = (cast_expression ( (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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == 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)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (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 ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (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 ;)) }) (else_clause else (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)) )) (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 *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression 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)) ;) (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 = 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 = (cast_expression ( (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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression 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 (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 *)))))))) ) IDENT)) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) }) (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 == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_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) ))))) ;) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (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 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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 ( IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != 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)) ))) )) (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 *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (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) ) (subscript_expression IDENT [ LIT ])) | (cast_expression ( (type_descriptor TYPE) ) 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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) ))))) ;) (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)) ;) }))) (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 *)))))))) ) (pointer_expression * IDENT))) )) (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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 = (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 IDENT = (cast_expression ( (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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 IDENT = (cast_expression ( (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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 *))))))) ) 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)) ;) (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 = (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 <= 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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & 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 *)))))))) ) (pointer_expression & IDENT))) , (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 *)))))))) ) (pointer_expression & IDENT))) , (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (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 { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 (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 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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 (binary_expression IDENT + LIT) != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (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 = (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)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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 IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) 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 IDENT == (cast_expression ( (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) ;)) (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 = (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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = IDENT) ;) })) (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 { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (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) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }))))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (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) )))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) < (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 *)))))))) ) (call_expression IDENT (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) ))) ;) (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)) ;) (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 * (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 *)))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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 * (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 *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_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 *))))))) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , LIT , (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 ;)) }) (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) ))))) ;) (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))) ;) (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)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_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 *))))))) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , LIT , (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) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_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 *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)))))))) ) (pointer_expression * 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 *))))))) ) 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 *))))))) ) 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 *))))))) ) 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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 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 *))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (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 *)))))) ) 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) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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 ))) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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)) ;) }) (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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 == (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) }) 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 = 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 ( (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (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) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (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 = (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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (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 = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;)) (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)) )) (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) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (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 LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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)) ))) )) (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 *))))))) ) (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)) ;) (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) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (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 (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 * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (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 = (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 = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) < LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) * LIT)) , IDENT )))) , (binary_expression IDENT != LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) <= 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 *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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)) ;)) (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (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 (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 ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) < LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (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 ;) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (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 ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = 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 * (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (subscript_expression IDENT [ IDENT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (pointer_expression * IDENT) * LIT))) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (pointer_expression * IDENT)) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 *)))))))) ) (pointer_expression * (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression (subscript_expression IDENT [ IDENT ]) * LIT) + LIT) ])))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( 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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 ( IDENT , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ 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 { (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) ;) (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) ;) }) (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 IDENT (argument_list ( 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 ( 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 ( IDENT , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ( (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 *))))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 *)))))) ) LIT)) )) (compound_statement { (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 *)))))) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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 *)))))) ) LIT)) ;) (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)) )) (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 *)))))))) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (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 ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (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)) )) (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 *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 *)))))))) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression (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 (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 * IDENT)) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (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 (pointer_expression * (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 { (return_statement return (cast_expression ( (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 ( (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 : (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 *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (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)) )) (break_statement break ;)) (labeled_statement statement_identifier : (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 ( 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 ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (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 (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) )))) != 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) }))) (goto_statement goto statement_identifier ;) })))
(function_definition "int *******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)\n\n{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    \n                    \n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" (primitive_type "int") (pointer_declarator "*******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (pointer_declarator "******\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (pointer_declarator "*****\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (pointer_declarator "****\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (pointer_declarator "***\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (pointer_declarator "**\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (pointer_declarator "*\nFUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (* "*") (function_declarator "FUN_00051ab4(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (identifier "FUN_00051ab4") (parameter_list "(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,\n            undefined *param_5,int *param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *******param_2" (primitive_type "int") (pointer_declarator "*******param_2" (* "*") (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 "int *******param_3" (primitive_type "int") (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 "int *******param_4" (primitive_type "int") (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 "undefined *param_5" (type_identifier "undefined") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")")))))))))) (compound_statement "{\n  bool bVar1;\n  int *******pppppppiVar2;\n  undefined *puVar3;\n  int *******pppppppiVar4;\n  int *******pppppppiVar5;\n  code *pcVar6;\n  byte bVar15;\n  int iVar7;\n  int ******ppppppiVar8;\n  byte *pbVar9;\n  int iVar10;\n  int ******ppppppiVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int *piVar14;\n  uint uVar16;\n  int *****pppppiVar17;\n  int *******pppppppiVar18;\n  int *******pppppppiVar19;\n  int *******pppppppiVar20;\n  uint uVar21;\n  int *******pppppppiVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int ******ppppppiVar25;\n  undefined *puVar26;\n  int *******pppppppiVar27;\n  uint uVar28;\n  int *******pppppppiVar29;\n  undefined *puVar30;\n  uint *puVar31;\n  code *pcVar32;\n  int iStack_190;\n  int *******pppppppiStack_188;\n  int *******pppppppiStack_178;\n  int *******apppppppiStack_174 [2];\n  int ******ppppppiStack_16c;\n  int iStack_168;\n  int *piStack_164;\n  int *******pppppppiStack_160;\n  int *******apppppppiStack_15c [5];\n  int iStack_148;\n  int *******pppppppiStack_144;\n  int *******pppppppiStack_140;\n  int *******pppppppiStack_13c;\n  int iStack_138;\n  int *******pppppppiStack_134;\n  int *******pppppppiStack_130;\n  int *******pppppppiStack_12c;\n  int *******pppppppiStack_128;\n  int ******ppppppiStack_120;\n  undefined1 uStack_118;\n  byte bStack_117;\n  byte bStack_116;\n  byte bStack_115;\n  int ******ppppppiStack_110;\n  uint uStack_10c;\n  int *******pppppppiStack_108;\n  int iStack_104;\n  int ******ppppppiStack_100;\n  int *******pppppppiStack_fc;\n  int *piStack_f8;\n  undefined *puStack_f4;\n  int *******pppppppiStack_f0;\n  int *******pppppppiStack_ec;\n  int *******pppppppiStack_e8;\n  code *pcStack_e4;\n  undefined *puStack_d0;\n  int *piStack_cc;\n  undefined *puStack_c8;\n  code *pcStack_c0;\n  code *pcStack_bc;\n  int *****pppppiStack_b8;\n  int *******pppppppiStack_b4;\n  code *pcStack_b0;\n  undefined4 *puStack_ac;\n  undefined auStack_a4 [4];\n  undefined1 uStack_a0;\n  int *******pppppppiStack_9c;\n  int *******pppppppiStack_98;\n  undefined *puStack_94;\n  int *******pppppppiStack_90;\n  undefined *puStack_8c;\n  int *******pppppppiStack_88;\n  undefined4 uStack_84;\n  int *******pppppppiStack_80;\n  int *******pppppppiStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined *local_60;\n  int *local_5c;\n  undefined auStack_34 [4];\n  undefined1 local_30;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00075be8;\n  local_2c = *(int *)PTR___stack_chk_guard_00075be8;\n  puVar26 = PTR_DAT_00075978 + 0x250;\n  pppppppiVar29 = (int *******)*param_2;\n  local_5c = param_6;\n  local_60 = param_5;\n  pppppppiVar27 = param_2;\n  pppppppiVar20 = param_3;\n  pppppppiVar18 = param_4;\n  pppppppiVar5 = (int *******)FUN_00050250();\n  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }\n  pcVar6 = FUN_00051cfc;\n  iVar10 = local_2c;\n  puVar30 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar14 = local_5c;\n  puVar3 = local_60;\n  puStack_c8 = puVar30 + 0x2b884;\n  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);\n  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);\n  ppppppiVar25 = *pppppppiVar27;\n  pppppppiStack_9c = (int *******)*puStack_ac;\n  pppppiStack_b8 = ppppppiVar25[0x15];\n  piStack_78 = param_6;\n  piStack_cc = local_5c;\n  puStack_d0 = local_60;\n  pppppppiVar19 = pppppppiVar20;\n  pppppppiVar22 = pppppppiVar18;\n  pppppppiStack_b4 = pppppppiVar27;\n  pppppppiStack_98 = pppppppiVar5;\n  puStack_94 = param_5;\n  pppppppiStack_90 = param_3;\n  puStack_8c = puVar26;\n  pppppppiStack_88 = param_2;\n  uStack_84 = param_1;\n  pppppppiStack_80 = param_4;\n  pppppppiStack_7c = pppppppiVar29;\n  pcStack_74 = pcVar6;\n  pppppppiStack_e8 = (int *******)FUN_00051ab4();\n  if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }\nLAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }\n  pcVar6 = *(code **)(puStack_c8 + -0x79d8);\n  pcVar32 = FUN_00051f24;\n  pppppppiVar5 = pppppppiStack_9c;\n  (*pcVar6)();\n  puStack_f4 = puVar3;\n  piStack_f8 = piVar14;\n  pppppppiVar5[3] = (int ******)pppppppiVar22;\n  pppppppiVar5[2] = (int ******)0x0;\n  pppppppiVar5[6] = (int ******)0x0;\n  puVar31 = *(uint **)(pcVar6 + 0x23cc4);\n  pppppppiVar24 = (int *******)*pppppppiVar5;\n  pppppppiStack_178 = (int *******)0x0;\n  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;\n  uStack_10c = *puVar31;\n  pppppppiStack_108 = pppppppiVar20;\n  iStack_104 = iVar10;\n  ppppppiStack_100 = ppppppiVar25;\n  pppppppiStack_fc = pppppppiVar18;\n  pppppppiStack_f0 = param_4;\n  pppppppiStack_ec = pppppppiVar29;\n  pcStack_e4 = pcVar32;\n  if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }\n  pcVar32 = *(code **)(pcVar6 + 0x23bb0);\n  pppppppiVar20 = (int *******)0xa0;\n  pppppppiVar18 = (int *******)0x0;\n  pppppppiVar5[2] = (int ******)0xa0;\n  (*pcVar32)(pppppppiVar24,0);\n  pppppppiVar24[0x10] = (int ******)0x1f;\n  if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }\n  FUN_000499a0(pppppppiVar24);\n  *pppppppiVar5 = (int ******)0x0;\n  pppppppiVar5[1] = (int ******)0x0;\n  pppppppiVar27 = pppppppiStack_178;\nLAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }\n  uVar28 = uStack_10c;\n  (**(code **)(pcVar6 + 0x23c84))();\nswitchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);\n  (*pcVar6)();\n  *(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;\n  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);\n  if (iVar10 == 0) {\n    return (int *******)0x0;\n  }\n                    \n                    \n  pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);\n  return pppppppiVar27;\nLAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }\n  goto LAB_00052614;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int *******pppppppiVar2;" (primitive_type "int") (pointer_declarator "*******pppppppiVar2" (* "*") (pointer_declarator "******pppppppiVar2" (* "*") (pointer_declarator "*****pppppppiVar2" (* "*") (pointer_declarator "****pppppppiVar2" (* "*") (pointer_declarator "***pppppppiVar2" (* "*") (pointer_declarator "**pppppppiVar2" (* "*") (pointer_declarator "*pppppppiVar2" (* "*") (identifier "pppppppiVar2")))))))) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *******pppppppiVar4;" (primitive_type "int") (pointer_declarator "*******pppppppiVar4" (* "*") (pointer_declarator "******pppppppiVar4" (* "*") (pointer_declarator "*****pppppppiVar4" (* "*") (pointer_declarator "****pppppppiVar4" (* "*") (pointer_declarator "***pppppppiVar4" (* "*") (pointer_declarator "**pppppppiVar4" (* "*") (pointer_declarator "*pppppppiVar4" (* "*") (identifier "pppppppiVar4")))))))) (; ";")) (declaration "int *******pppppppiVar5;" (primitive_type "int") (pointer_declarator "*******pppppppiVar5" (* "*") (pointer_declarator "******pppppppiVar5" (* "*") (pointer_declarator "*****pppppppiVar5" (* "*") (pointer_declarator "****pppppppiVar5" (* "*") (pointer_declarator "***pppppppiVar5" (* "*") (pointer_declarator "**pppppppiVar5" (* "*") (pointer_declarator "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")))))))) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int ******ppppppiVar8;" (primitive_type "int") (pointer_declarator "******ppppppiVar8" (* "*") (pointer_declarator "*****ppppppiVar8" (* "*") (pointer_declarator "****ppppppiVar8" (* "*") (pointer_declarator "***ppppppiVar8" (* "*") (pointer_declarator "**ppppppiVar8" (* "*") (pointer_declarator "*ppppppiVar8" (* "*") (identifier "ppppppiVar8"))))))) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int ******ppppppiVar11;" (primitive_type "int") (pointer_declarator "******ppppppiVar11" (* "*") (pointer_declarator "*****ppppppiVar11" (* "*") (pointer_declarator "****ppppppiVar11" (* "*") (pointer_declarator "***ppppppiVar11" (* "*") (pointer_declarator "**ppppppiVar11" (* "*") (pointer_declarator "*ppppppiVar11" (* "*") (identifier "ppppppiVar11"))))))) (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int *****pppppiVar17;" (primitive_type "int") (pointer_declarator "*****pppppiVar17" (* "*") (pointer_declarator "****pppppiVar17" (* "*") (pointer_declarator "***pppppiVar17" (* "*") (pointer_declarator "**pppppiVar17" (* "*") (pointer_declarator "*pppppiVar17" (* "*") (identifier "pppppiVar17")))))) (; ";")) (declaration "int *******pppppppiVar18;" (primitive_type "int") (pointer_declarator "*******pppppppiVar18" (* "*") (pointer_declarator "******pppppppiVar18" (* "*") (pointer_declarator "*****pppppppiVar18" (* "*") (pointer_declarator "****pppppppiVar18" (* "*") (pointer_declarator "***pppppppiVar18" (* "*") (pointer_declarator "**pppppppiVar18" (* "*") (pointer_declarator "*pppppppiVar18" (* "*") (identifier "pppppppiVar18")))))))) (; ";")) (declaration "int *******pppppppiVar19;" (primitive_type "int") (pointer_declarator "*******pppppppiVar19" (* "*") (pointer_declarator "******pppppppiVar19" (* "*") (pointer_declarator "*****pppppppiVar19" (* "*") (pointer_declarator "****pppppppiVar19" (* "*") (pointer_declarator "***pppppppiVar19" (* "*") (pointer_declarator "**pppppppiVar19" (* "*") (pointer_declarator "*pppppppiVar19" (* "*") (identifier "pppppppiVar19")))))))) (; ";")) (declaration "int *******pppppppiVar20;" (primitive_type "int") (pointer_declarator "*******pppppppiVar20" (* "*") (pointer_declarator "******pppppppiVar20" (* "*") (pointer_declarator "*****pppppppiVar20" (* "*") (pointer_declarator "****pppppppiVar20" (* "*") (pointer_declarator "***pppppppiVar20" (* "*") (pointer_declarator "**pppppppiVar20" (* "*") (pointer_declarator "*pppppppiVar20" (* "*") (identifier "pppppppiVar20")))))))) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int *******pppppppiVar22;" (primitive_type "int") (pointer_declarator "*******pppppppiVar22" (* "*") (pointer_declarator "******pppppppiVar22" (* "*") (pointer_declarator "*****pppppppiVar22" (* "*") (pointer_declarator "****pppppppiVar22" (* "*") (pointer_declarator "***pppppppiVar22" (* "*") (pointer_declarator "**pppppppiVar22" (* "*") (pointer_declarator "*pppppppiVar22" (* "*") (identifier "pppppppiVar22")))))))) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int *******pppppppiVar24;" (primitive_type "int") (pointer_declarator "*******pppppppiVar24" (* "*") (pointer_declarator "******pppppppiVar24" (* "*") (pointer_declarator "*****pppppppiVar24" (* "*") (pointer_declarator "****pppppppiVar24" (* "*") (pointer_declarator "***pppppppiVar24" (* "*") (pointer_declarator "**pppppppiVar24" (* "*") (pointer_declarator "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")))))))) (; ";")) (declaration "int ******ppppppiVar25;" (primitive_type "int") (pointer_declarator "******ppppppiVar25" (* "*") (pointer_declarator "*****ppppppiVar25" (* "*") (pointer_declarator "****ppppppiVar25" (* "*") (pointer_declarator "***ppppppiVar25" (* "*") (pointer_declarator "**ppppppiVar25" (* "*") (pointer_declarator "*ppppppiVar25" (* "*") (identifier "ppppppiVar25"))))))) (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "int *******pppppppiVar27;" (primitive_type "int") (pointer_declarator "*******pppppppiVar27" (* "*") (pointer_declarator "******pppppppiVar27" (* "*") (pointer_declarator "*****pppppppiVar27" (* "*") (pointer_declarator "****pppppppiVar27" (* "*") (pointer_declarator "***pppppppiVar27" (* "*") (pointer_declarator "**pppppppiVar27" (* "*") (pointer_declarator "*pppppppiVar27" (* "*") (identifier "pppppppiVar27")))))))) (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "int *******pppppppiVar29;" (primitive_type "int") (pointer_declarator "*******pppppppiVar29" (* "*") (pointer_declarator "******pppppppiVar29" (* "*") (pointer_declarator "*****pppppppiVar29" (* "*") (pointer_declarator "****pppppppiVar29" (* "*") (pointer_declarator "***pppppppiVar29" (* "*") (pointer_declarator "**pppppppiVar29" (* "*") (pointer_declarator "*pppppppiVar29" (* "*") (identifier "pppppppiVar29")))))))) (; ";")) (declaration "undefined *puVar30;" (type_identifier "undefined") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "uint *puVar31;" (type_identifier "uint") (pointer_declarator "*puVar31" (* "*") (identifier "puVar31")) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "int iStack_190;" (primitive_type "int") (identifier "iStack_190") (; ";")) (declaration "int *******pppppppiStack_188;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_188" (* "*") (pointer_declarator "******pppppppiStack_188" (* "*") (pointer_declarator "*****pppppppiStack_188" (* "*") (pointer_declarator "****pppppppiStack_188" (* "*") (pointer_declarator "***pppppppiStack_188" (* "*") (pointer_declarator "**pppppppiStack_188" (* "*") (pointer_declarator "*pppppppiStack_188" (* "*") (identifier "pppppppiStack_188")))))))) (; ";")) (declaration "int *******pppppppiStack_178;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_178" (* "*") (pointer_declarator "******pppppppiStack_178" (* "*") (pointer_declarator "*****pppppppiStack_178" (* "*") (pointer_declarator "****pppppppiStack_178" (* "*") (pointer_declarator "***pppppppiStack_178" (* "*") (pointer_declarator "**pppppppiStack_178" (* "*") (pointer_declarator "*pppppppiStack_178" (* "*") (identifier "pppppppiStack_178")))))))) (; ";")) (declaration "int *******apppppppiStack_174 [2];" (primitive_type "int") (pointer_declarator "*******apppppppiStack_174 [2]" (* "*") (pointer_declarator "******apppppppiStack_174 [2]" (* "*") (pointer_declarator "*****apppppppiStack_174 [2]" (* "*") (pointer_declarator "****apppppppiStack_174 [2]" (* "*") (pointer_declarator "***apppppppiStack_174 [2]" (* "*") (pointer_declarator "**apppppppiStack_174 [2]" (* "*") (pointer_declarator "*apppppppiStack_174 [2]" (* "*") (array_declarator "apppppppiStack_174 [2]" (identifier "apppppppiStack_174") ([ "[") (number_literal "2") (] "]"))))))))) (; ";")) (declaration "int ******ppppppiStack_16c;" (primitive_type "int") (pointer_declarator "******ppppppiStack_16c" (* "*") (pointer_declarator "*****ppppppiStack_16c" (* "*") (pointer_declarator "****ppppppiStack_16c" (* "*") (pointer_declarator "***ppppppiStack_16c" (* "*") (pointer_declarator "**ppppppiStack_16c" (* "*") (pointer_declarator "*ppppppiStack_16c" (* "*") (identifier "ppppppiStack_16c"))))))) (; ";")) (declaration "int iStack_168;" (primitive_type "int") (identifier "iStack_168") (; ";")) (declaration "int *piStack_164;" (primitive_type "int") (pointer_declarator "*piStack_164" (* "*") (identifier "piStack_164")) (; ";")) (declaration "int *******pppppppiStack_160;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_160" (* "*") (pointer_declarator "******pppppppiStack_160" (* "*") (pointer_declarator "*****pppppppiStack_160" (* "*") (pointer_declarator "****pppppppiStack_160" (* "*") (pointer_declarator "***pppppppiStack_160" (* "*") (pointer_declarator "**pppppppiStack_160" (* "*") (pointer_declarator "*pppppppiStack_160" (* "*") (identifier "pppppppiStack_160")))))))) (; ";")) (declaration "int *******apppppppiStack_15c [5];" (primitive_type "int") (pointer_declarator "*******apppppppiStack_15c [5]" (* "*") (pointer_declarator "******apppppppiStack_15c [5]" (* "*") (pointer_declarator "*****apppppppiStack_15c [5]" (* "*") (pointer_declarator "****apppppppiStack_15c [5]" (* "*") (pointer_declarator "***apppppppiStack_15c [5]" (* "*") (pointer_declarator "**apppppppiStack_15c [5]" (* "*") (pointer_declarator "*apppppppiStack_15c [5]" (* "*") (array_declarator "apppppppiStack_15c [5]" (identifier "apppppppiStack_15c") ([ "[") (number_literal "5") (] "]"))))))))) (; ";")) (declaration "int iStack_148;" (primitive_type "int") (identifier "iStack_148") (; ";")) (declaration "int *******pppppppiStack_144;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_144" (* "*") (pointer_declarator "******pppppppiStack_144" (* "*") (pointer_declarator "*****pppppppiStack_144" (* "*") (pointer_declarator "****pppppppiStack_144" (* "*") (pointer_declarator "***pppppppiStack_144" (* "*") (pointer_declarator "**pppppppiStack_144" (* "*") (pointer_declarator "*pppppppiStack_144" (* "*") (identifier "pppppppiStack_144")))))))) (; ";")) (declaration "int *******pppppppiStack_140;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_140" (* "*") (pointer_declarator "******pppppppiStack_140" (* "*") (pointer_declarator "*****pppppppiStack_140" (* "*") (pointer_declarator "****pppppppiStack_140" (* "*") (pointer_declarator "***pppppppiStack_140" (* "*") (pointer_declarator "**pppppppiStack_140" (* "*") (pointer_declarator "*pppppppiStack_140" (* "*") (identifier "pppppppiStack_140")))))))) (; ";")) (declaration "int *******pppppppiStack_13c;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_13c" (* "*") (pointer_declarator "******pppppppiStack_13c" (* "*") (pointer_declarator "*****pppppppiStack_13c" (* "*") (pointer_declarator "****pppppppiStack_13c" (* "*") (pointer_declarator "***pppppppiStack_13c" (* "*") (pointer_declarator "**pppppppiStack_13c" (* "*") (pointer_declarator "*pppppppiStack_13c" (* "*") (identifier "pppppppiStack_13c")))))))) (; ";")) (declaration "int iStack_138;" (primitive_type "int") (identifier "iStack_138") (; ";")) (declaration "int *******pppppppiStack_134;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_134" (* "*") (pointer_declarator "******pppppppiStack_134" (* "*") (pointer_declarator "*****pppppppiStack_134" (* "*") (pointer_declarator "****pppppppiStack_134" (* "*") (pointer_declarator "***pppppppiStack_134" (* "*") (pointer_declarator "**pppppppiStack_134" (* "*") (pointer_declarator "*pppppppiStack_134" (* "*") (identifier "pppppppiStack_134")))))))) (; ";")) (declaration "int *******pppppppiStack_130;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_130" (* "*") (pointer_declarator "******pppppppiStack_130" (* "*") (pointer_declarator "*****pppppppiStack_130" (* "*") (pointer_declarator "****pppppppiStack_130" (* "*") (pointer_declarator "***pppppppiStack_130" (* "*") (pointer_declarator "**pppppppiStack_130" (* "*") (pointer_declarator "*pppppppiStack_130" (* "*") (identifier "pppppppiStack_130")))))))) (; ";")) (declaration "int *******pppppppiStack_12c;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_12c" (* "*") (pointer_declarator "******pppppppiStack_12c" (* "*") (pointer_declarator "*****pppppppiStack_12c" (* "*") (pointer_declarator "****pppppppiStack_12c" (* "*") (pointer_declarator "***pppppppiStack_12c" (* "*") (pointer_declarator "**pppppppiStack_12c" (* "*") (pointer_declarator "*pppppppiStack_12c" (* "*") (identifier "pppppppiStack_12c")))))))) (; ";")) (declaration "int *******pppppppiStack_128;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_128" (* "*") (pointer_declarator "******pppppppiStack_128" (* "*") (pointer_declarator "*****pppppppiStack_128" (* "*") (pointer_declarator "****pppppppiStack_128" (* "*") (pointer_declarator "***pppppppiStack_128" (* "*") (pointer_declarator "**pppppppiStack_128" (* "*") (pointer_declarator "*pppppppiStack_128" (* "*") (identifier "pppppppiStack_128")))))))) (; ";")) (declaration "int ******ppppppiStack_120;" (primitive_type "int") (pointer_declarator "******ppppppiStack_120" (* "*") (pointer_declarator "*****ppppppiStack_120" (* "*") (pointer_declarator "****ppppppiStack_120" (* "*") (pointer_declarator "***ppppppiStack_120" (* "*") (pointer_declarator "**ppppppiStack_120" (* "*") (pointer_declarator "*ppppppiStack_120" (* "*") (identifier "ppppppiStack_120"))))))) (; ";")) (declaration "undefined1 uStack_118;" (type_identifier "undefined1") (identifier "uStack_118") (; ";")) (declaration "byte bStack_117;" (type_identifier "byte") (identifier "bStack_117") (; ";")) (declaration "byte bStack_116;" (type_identifier "byte") (identifier "bStack_116") (; ";")) (declaration "byte bStack_115;" (type_identifier "byte") (identifier "bStack_115") (; ";")) (declaration "int ******ppppppiStack_110;" (primitive_type "int") (pointer_declarator "******ppppppiStack_110" (* "*") (pointer_declarator "*****ppppppiStack_110" (* "*") (pointer_declarator "****ppppppiStack_110" (* "*") (pointer_declarator "***ppppppiStack_110" (* "*") (pointer_declarator "**ppppppiStack_110" (* "*") (pointer_declarator "*ppppppiStack_110" (* "*") (identifier "ppppppiStack_110"))))))) (; ";")) (declaration "uint uStack_10c;" (type_identifier "uint") (identifier "uStack_10c") (; ";")) (declaration "int *******pppppppiStack_108;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_108" (* "*") (pointer_declarator "******pppppppiStack_108" (* "*") (pointer_declarator "*****pppppppiStack_108" (* "*") (pointer_declarator "****pppppppiStack_108" (* "*") (pointer_declarator "***pppppppiStack_108" (* "*") (pointer_declarator "**pppppppiStack_108" (* "*") (pointer_declarator "*pppppppiStack_108" (* "*") (identifier "pppppppiStack_108")))))))) (; ";")) (declaration "int iStack_104;" (primitive_type "int") (identifier "iStack_104") (; ";")) (declaration "int ******ppppppiStack_100;" (primitive_type "int") (pointer_declarator "******ppppppiStack_100" (* "*") (pointer_declarator "*****ppppppiStack_100" (* "*") (pointer_declarator "****ppppppiStack_100" (* "*") (pointer_declarator "***ppppppiStack_100" (* "*") (pointer_declarator "**ppppppiStack_100" (* "*") (pointer_declarator "*ppppppiStack_100" (* "*") (identifier "ppppppiStack_100"))))))) (; ";")) (declaration "int *******pppppppiStack_fc;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_fc" (* "*") (pointer_declarator "******pppppppiStack_fc" (* "*") (pointer_declarator "*****pppppppiStack_fc" (* "*") (pointer_declarator "****pppppppiStack_fc" (* "*") (pointer_declarator "***pppppppiStack_fc" (* "*") (pointer_declarator "**pppppppiStack_fc" (* "*") (pointer_declarator "*pppppppiStack_fc" (* "*") (identifier "pppppppiStack_fc")))))))) (; ";")) (declaration "int *piStack_f8;" (primitive_type "int") (pointer_declarator "*piStack_f8" (* "*") (identifier "piStack_f8")) (; ";")) (declaration "undefined *puStack_f4;" (type_identifier "undefined") (pointer_declarator "*puStack_f4" (* "*") (identifier "puStack_f4")) (; ";")) (declaration "int *******pppppppiStack_f0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_f0" (* "*") (pointer_declarator "******pppppppiStack_f0" (* "*") (pointer_declarator "*****pppppppiStack_f0" (* "*") (pointer_declarator "****pppppppiStack_f0" (* "*") (pointer_declarator "***pppppppiStack_f0" (* "*") (pointer_declarator "**pppppppiStack_f0" (* "*") (pointer_declarator "*pppppppiStack_f0" (* "*") (identifier "pppppppiStack_f0")))))))) (; ";")) (declaration "int *******pppppppiStack_ec;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_ec" (* "*") (pointer_declarator "******pppppppiStack_ec" (* "*") (pointer_declarator "*****pppppppiStack_ec" (* "*") (pointer_declarator "****pppppppiStack_ec" (* "*") (pointer_declarator "***pppppppiStack_ec" (* "*") (pointer_declarator "**pppppppiStack_ec" (* "*") (pointer_declarator "*pppppppiStack_ec" (* "*") (identifier "pppppppiStack_ec")))))))) (; ";")) (declaration "int *******pppppppiStack_e8;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_e8" (* "*") (pointer_declarator "******pppppppiStack_e8" (* "*") (pointer_declarator "*****pppppppiStack_e8" (* "*") (pointer_declarator "****pppppppiStack_e8" (* "*") (pointer_declarator "***pppppppiStack_e8" (* "*") (pointer_declarator "**pppppppiStack_e8" (* "*") (pointer_declarator "*pppppppiStack_e8" (* "*") (identifier "pppppppiStack_e8")))))))) (; ";")) (declaration "code *pcStack_e4;" (type_identifier "code") (pointer_declarator "*pcStack_e4" (* "*") (identifier "pcStack_e4")) (; ";")) (declaration "undefined *puStack_d0;" (type_identifier "undefined") (pointer_declarator "*puStack_d0" (* "*") (identifier "puStack_d0")) (; ";")) (declaration "int *piStack_cc;" (primitive_type "int") (pointer_declarator "*piStack_cc" (* "*") (identifier "piStack_cc")) (; ";")) (declaration "undefined *puStack_c8;" (type_identifier "undefined") (pointer_declarator "*puStack_c8" (* "*") (identifier "puStack_c8")) (; ";")) (declaration "code *pcStack_c0;" (type_identifier "code") (pointer_declarator "*pcStack_c0" (* "*") (identifier "pcStack_c0")) (; ";")) (declaration "code *pcStack_bc;" (type_identifier "code") (pointer_declarator "*pcStack_bc" (* "*") (identifier "pcStack_bc")) (; ";")) (declaration "int *****pppppiStack_b8;" (primitive_type "int") (pointer_declarator "*****pppppiStack_b8" (* "*") (pointer_declarator "****pppppiStack_b8" (* "*") (pointer_declarator "***pppppiStack_b8" (* "*") (pointer_declarator "**pppppiStack_b8" (* "*") (pointer_declarator "*pppppiStack_b8" (* "*") (identifier "pppppiStack_b8")))))) (; ";")) (declaration "int *******pppppppiStack_b4;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_b4" (* "*") (pointer_declarator "******pppppppiStack_b4" (* "*") (pointer_declarator "*****pppppppiStack_b4" (* "*") (pointer_declarator "****pppppppiStack_b4" (* "*") (pointer_declarator "***pppppppiStack_b4" (* "*") (pointer_declarator "**pppppppiStack_b4" (* "*") (pointer_declarator "*pppppppiStack_b4" (* "*") (identifier "pppppppiStack_b4")))))))) (; ";")) (declaration "code *pcStack_b0;" (type_identifier "code") (pointer_declarator "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (; ";")) (declaration "undefined4 *puStack_ac;" (type_identifier "undefined4") (pointer_declarator "*puStack_ac" (* "*") (identifier "puStack_ac")) (; ";")) (declaration "undefined auStack_a4 [4];" (type_identifier "undefined") (array_declarator "auStack_a4 [4]" (identifier "auStack_a4") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 uStack_a0;" (type_identifier "undefined1") (identifier "uStack_a0") (; ";")) (declaration "int *******pppppppiStack_9c;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_9c" (* "*") (pointer_declarator "******pppppppiStack_9c" (* "*") (pointer_declarator "*****pppppppiStack_9c" (* "*") (pointer_declarator "****pppppppiStack_9c" (* "*") (pointer_declarator "***pppppppiStack_9c" (* "*") (pointer_declarator "**pppppppiStack_9c" (* "*") (pointer_declarator "*pppppppiStack_9c" (* "*") (identifier "pppppppiStack_9c")))))))) (; ";")) (declaration "int *******pppppppiStack_98;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_98" (* "*") (pointer_declarator "******pppppppiStack_98" (* "*") (pointer_declarator "*****pppppppiStack_98" (* "*") (pointer_declarator "****pppppppiStack_98" (* "*") (pointer_declarator "***pppppppiStack_98" (* "*") (pointer_declarator "**pppppppiStack_98" (* "*") (pointer_declarator "*pppppppiStack_98" (* "*") (identifier "pppppppiStack_98")))))))) (; ";")) (declaration "undefined *puStack_94;" (type_identifier "undefined") (pointer_declarator "*puStack_94" (* "*") (identifier "puStack_94")) (; ";")) (declaration "int *******pppppppiStack_90;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_90" (* "*") (pointer_declarator "******pppppppiStack_90" (* "*") (pointer_declarator "*****pppppppiStack_90" (* "*") (pointer_declarator "****pppppppiStack_90" (* "*") (pointer_declarator "***pppppppiStack_90" (* "*") (pointer_declarator "**pppppppiStack_90" (* "*") (pointer_declarator "*pppppppiStack_90" (* "*") (identifier "pppppppiStack_90")))))))) (; ";")) (declaration "undefined *puStack_8c;" (type_identifier "undefined") (pointer_declarator "*puStack_8c" (* "*") (identifier "puStack_8c")) (; ";")) (declaration "int *******pppppppiStack_88;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_88" (* "*") (pointer_declarator "******pppppppiStack_88" (* "*") (pointer_declarator "*****pppppppiStack_88" (* "*") (pointer_declarator "****pppppppiStack_88" (* "*") (pointer_declarator "***pppppppiStack_88" (* "*") (pointer_declarator "**pppppppiStack_88" (* "*") (pointer_declarator "*pppppppiStack_88" (* "*") (identifier "pppppppiStack_88")))))))) (; ";")) (declaration "undefined4 uStack_84;" (type_identifier "undefined4") (identifier "uStack_84") (; ";")) (declaration "int *******pppppppiStack_80;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_80" (* "*") (pointer_declarator "******pppppppiStack_80" (* "*") (pointer_declarator "*****pppppppiStack_80" (* "*") (pointer_declarator "****pppppppiStack_80" (* "*") (pointer_declarator "***pppppppiStack_80" (* "*") (pointer_declarator "**pppppppiStack_80" (* "*") (pointer_declarator "*pppppppiStack_80" (* "*") (identifier "pppppppiStack_80")))))))) (; ";")) (declaration "int *******pppppppiStack_7c;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_7c" (* "*") (pointer_declarator "******pppppppiStack_7c" (* "*") (pointer_declarator "*****pppppppiStack_7c" (* "*") (pointer_declarator "****pppppppiStack_7c" (* "*") (pointer_declarator "***pppppppiStack_7c" (* "*") (pointer_declarator "**pppppppiStack_7c" (* "*") (pointer_declarator "*pppppppiStack_7c" (* "*") (identifier "pppppppiStack_7c")))))))) (; ";")) (declaration "int *piStack_78;" (primitive_type "int") (pointer_declarator "*piStack_78" (* "*") (identifier "piStack_78")) (; ";")) (declaration "code *pcStack_74;" (type_identifier "code") (pointer_declarator "*pcStack_74" (* "*") (identifier "pcStack_74")) (; ";")) (declaration "undefined *local_60;" (type_identifier "undefined") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "int *local_5c;" (primitive_type "int") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "undefined auStack_34 [4];" (type_identifier "undefined") (array_declarator "auStack_34 [4]" (identifier "auStack_34") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_30;" (type_identifier "undefined1") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00075be8" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_00075be8")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00075be8" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00075be8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00075be8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00075be8")))) (; ";")) (expression_statement "puVar26 = PTR_DAT_00075978 + 0x250;" (assignment_expression "puVar26 = PTR_DAT_00075978 + 0x250" (identifier "puVar26") (= "=") (binary_expression "PTR_DAT_00075978 + 0x250" (identifier "PTR_DAT_00075978") (+ "+") (number_literal "0x250"))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)*param_2;" (assignment_expression "pppppppiVar29 = (int *******)*param_2" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)*param_2" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "local_5c = param_6;" (assignment_expression "local_5c = param_6" (identifier "local_5c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" (identifier "local_60") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pppppppiVar27 = param_2;" (assignment_expression "pppppppiVar27 = param_2" (identifier "pppppppiVar27") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pppppppiVar20 = param_3;" (assignment_expression "pppppppiVar20 = param_3" (identifier "pppppppiVar20") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppiVar18 = param_4;" (assignment_expression "pppppppiVar18 = param_4" (identifier "pppppppiVar18") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppiVar5 = (int *******)FUN_00050250();" (assignment_expression "pppppppiVar5 = (int *******)FUN_00050250()" (identifier "pppppppiVar5") (= "=") (cast_expression "(int *******)FUN_00050250()" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00050250()" (identifier "FUN_00050250") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }\n  else {\n    pppppppiVar5 = (int *******)0x0;\n  }" (if "if") (parenthesized_expression "((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0))" (( "(") (binary_expression "(*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)" (parenthesized_expression "(*param_6 == 0)" (( "(") (binary_expression "*param_6 == 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar5 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar5 != (int *******)0x0" (identifier "pppppppiVar5") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    pppppppiVar19 = pppppppiVar29 + 0x10;\n    pppppppiVar22 = pppppppiVar29 + 0xe;\n    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);\nLAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);\n    pppppppiVar24 = pppppppiVar5;\n    if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "pppppppiVar19 = pppppppiVar29 + 0x10;" (assignment_expression "pppppppiVar19 = pppppppiVar29 + 0x10" (identifier "pppppppiVar19") (= "=") (binary_expression "pppppppiVar29 + 0x10" (identifier "pppppppiVar29") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "pppppppiVar22 = pppppppiVar29 + 0xe;" (assignment_expression "pppppppiVar22 = pppppppiVar29 + 0xe" (identifier "pppppppiVar22") (= "=") (binary_expression "pppppppiVar29 + 0xe" (identifier "pppppppiVar29") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(PTR_LAB_00075920 + 0x63ec)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00075920 + 0x63ec)" (( "(") (binary_expression "PTR_LAB_00075920 + 0x63ec" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x63ec")) () ")")))) (; ";")) (labeled_statement "LAB_00051b68:\n    bVar15 = *(byte *)(param_3 + 1);" (statement_identifier "LAB_00051b68") (: ":") (expression_statement "bVar15 = *(byte *)(param_3 + 1);" (assignment_expression "bVar15 = *(byte *)(param_3 + 1)" (identifier "bVar15") (= "=") (pointer_expression "*(byte *)(param_3 + 1)" (* "*") (cast_expression "(byte *)(param_3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")"))))) (; ";"))) (expression_statement "pppppppiVar24 = pppppppiVar5;" (assignment_expression "pppppppiVar24 = pppppppiVar5" (identifier "pppppppiVar24") (= "=") (identifier "pppppppiVar5")) (; ";")) (if_statement "if ((bVar15 & 0xf7) != 2) {\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "((bVar15 & 0xf7) != 2)" (( "(") (binary_expression "(bVar15 & 0xf7) != 2" (parenthesized_expression "(bVar15 & 0xf7)" (( "(") (binary_expression "bVar15 & 0xf7" (identifier "bVar15") (& "&") (number_literal "0xf7")) () ")")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      } while( true );" (do "do") (compound_statement "{\n        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;\n        local_5c = param_6;\n        local_60 = param_5;\n        pppppppiVar27 = param_2;\n        pppppppiVar20 = param_3;\n        pppppppiVar18 = param_4;\n        pppppppiVar29 = (int *******)FUN_00050250(param_1);\n        if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }\n        pppppppiVar5 = pppppppiVar4;\n        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;\n        local_30 = 0x10;\n        pppppppiVar27 = pppppppiVar19;\n        pppppppiVar20 = pppppppiVar24;\n        pppppppiVar18 = pppppppiVar29;\n        local_60 = auStack_34;\n        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);\n        puVar30 = PTR_LAB_00075920;\n        if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }\n        bVar15 = *(byte *)(param_3 + 1);\n        pppppppiVar24 = pppppppiVar5;\n        if ((bVar15 & 0xf7) == 2) break;\n      }" ({ "{") (if_statement "if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;" (if "if") (parenthesized_expression "((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9))" (( "(") (binary_expression "(param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)" (parenthesized_expression "(param_5 != (undefined *)0x0)" (( "(") (binary_expression "param_5 != (undefined *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar5 = pppppppiVar24, bVar15 == 9)" (( "(") (comma_expression "pppppppiVar5 = pppppppiVar24, bVar15 == 9" (assignment_expression "pppppppiVar5 = pppppppiVar24" (identifier "pppppppiVar5") (= "=") (identifier "pppppppiVar24")) (, ",") (binary_expression "bVar15 == 9" (identifier "bVar15") (== "==") (number_literal "9"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_5c = param_6;" (assignment_expression "local_5c = param_6" (identifier "local_5c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" (identifier "local_60") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pppppppiVar27 = param_2;" (assignment_expression "pppppppiVar27 = param_2" (identifier "pppppppiVar27") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pppppppiVar20 = param_3;" (assignment_expression "pppppppiVar20 = param_3" (identifier "pppppppiVar20") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppiVar18 = param_4;" (assignment_expression "pppppppiVar18 = param_4" (identifier "pppppppiVar18") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppiVar29 = (int *******)FUN_00050250(param_1);" (assignment_expression "pppppppiVar29 = (int *******)FUN_00050250(param_1)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)FUN_00050250(param_1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00050250(param_1)" (identifier "FUN_00050250") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (*param_6 == 0) {\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }\n        else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" (if "if") (parenthesized_expression "(*param_6 == 0)" (( "(") (binary_expression "*param_6 == 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppiVar5 = pppppppiVar29;\n          pppppppiVar4 = pppppppiVar24;\n          pppppppiVar2 = pppppppiVar29;\n          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;\n        }" ({ "{") (expression_statement "pppppppiVar5 = pppppppiVar29;" (assignment_expression "pppppppiVar5 = pppppppiVar29" (identifier "pppppppiVar5") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "pppppppiVar4 = pppppppiVar24;" (assignment_expression "pppppppiVar4 = pppppppiVar24" (identifier "pppppppiVar4") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "pppppppiVar2 = pppppppiVar29;" (assignment_expression "pppppppiVar2 = pppppppiVar29" (identifier "pppppppiVar2") (= "=") (identifier "pppppppiVar29")) (; ";")) (if_statement "if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;" (if "if") (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar24 == (int *******)0x0" (identifier "pppppppiVar24") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00051b68;" (goto "goto") (statement_identifier "LAB_00051b68") (; ";"))) (} "}")) (else_clause "else {\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" (else "else") (compound_statement "{\n          pppppppiVar4 = pppppppiVar29;\n          pppppppiVar2 = pppppppiVar24;\n          if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }\n        }" ({ "{") (expression_statement "pppppppiVar4 = pppppppiVar29;" (assignment_expression "pppppppiVar4 = pppppppiVar29" (identifier "pppppppiVar4") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "pppppppiVar2 = pppppppiVar24;" (assignment_expression "pppppppiVar2 = pppppppiVar24" (identifier "pppppppiVar2") (= "=") (identifier "pppppppiVar24")) (; ";")) (if_statement "if (pppppppiVar29 == (int *******)0x0) {\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }" (if "if") (parenthesized_expression "(pppppppiVar29 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar29 == (int *******)0x0" (identifier "pppppppiVar29") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pppppppiVar20 = (int *******)0x0;\n            if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }\n            pppppppiVar5 = (int *******)0x0;\n            break;\n          }" ({ "{") (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppiVar24 != (int *******)0x0) {\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }" (if "if") (parenthesized_expression "(pppppppiVar24 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar24 != (int *******)0x0" (identifier "pppppppiVar24") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);\n              FUN_00042ca0(pppppppiVar24);\n            }" ({ "{") (expression_statement "pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588)" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)(PTR_LAB_00075920 + 0x4588)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(PTR_LAB_00075920 + 0x4588)" (( "(") (binary_expression "PTR_LAB_00075920 + 0x4588" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x4588")) () ")")))) (; ";")) (expression_statement "FUN_00042ca0(pppppppiVar24);" (call_expression "FUN_00042ca0(pppppppiVar24)" (identifier "FUN_00042ca0") (argument_list "(pppppppiVar24)" (( "(") (identifier "pppppppiVar24") () ")"))) (; ";")) (} "}"))) (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" (identifier "pppppppiVar5") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")))) (expression_statement "pppppppiVar5 = pppppppiVar4;" (assignment_expression "pppppppiVar5 = pppppppiVar4" (identifier "pppppppiVar5") (= "=") (identifier "pppppppiVar4")) (; ";")) (if_statement "if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;" (if "if") (parenthesized_expression "(pppppppiVar2 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar2 == (int *******)0x0" (identifier "pppppppiVar2") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00051b68;" (goto "goto") (statement_identifier "LAB_00051b68") (; ";"))) (expression_statement "local_30 = 0x10;" (assignment_expression "local_30 = 0x10" (identifier "local_30") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pppppppiVar27 = pppppppiVar19;" (assignment_expression "pppppppiVar27 = pppppppiVar19" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar24;" (assignment_expression "pppppppiVar20 = pppppppiVar24" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar29;" (assignment_expression "pppppppiVar18 = pppppppiVar29" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "local_60 = auStack_34;" (assignment_expression "local_60 = auStack_34" (identifier "local_60") (= "=") (identifier "auStack_34")) (; ";")) (expression_statement "pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);" (assignment_expression "pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22)" (identifier "pppppppiVar5") (= "=") (cast_expression "(int *******)(*pcVar6)(pppppppiVar22)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar6)(pppppppiVar22)" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(pppppppiVar22)" (( "(") (identifier "pppppppiVar22") () ")"))))) (; ";")) (expression_statement "puVar30 = PTR_LAB_00075920;" (assignment_expression "puVar30 = PTR_LAB_00075920" (identifier "puVar30") (= "=") (identifier "PTR_LAB_00075920")) (; ";")) (if_statement "if (pppppppiVar5 == (int *******)0x0) {\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }" (if "if") (parenthesized_expression "(pppppppiVar5 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar5 == (int *******)0x0" (identifier "pppppppiVar5") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          param_5 = PTR_LAB_00075920 + 0x2ca0;\n          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);\n          pppppppiVar20 = (int *******)0x0;\n          pppppppiVar27 = (int *******)(puVar30 + 0x4588);\n          FUN_00042ca0(pppppppiVar24);\n          pppppppiVar5 = (int *******)0x0;\n          *param_6 = 0xc;\n          param_3 = (int *******)puVar30;\n          break;\n        }" ({ "{") (expression_statement "param_5 = PTR_LAB_00075920 + 0x2ca0;" (assignment_expression "param_5 = PTR_LAB_00075920 + 0x2ca0" (identifier "param_5") (= "=") (binary_expression "PTR_LAB_00075920 + 0x2ca0" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x2ca0"))) (; ";")) (expression_statement "FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);" (call_expression "FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0)" (identifier "FUN_00042ca0") (argument_list "(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0)" (( "(") (identifier "pppppppiVar29") (, ",") (binary_expression "PTR_LAB_00075920 + 0x4588" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x4588")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar27 = (int *******)(puVar30 + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(puVar30 + 0x4588)" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)(puVar30 + 0x4588)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(puVar30 + 0x4588)" (( "(") (binary_expression "puVar30 + 0x4588" (identifier "puVar30") (+ "+") (number_literal "0x4588")) () ")")))) (; ";")) (expression_statement "FUN_00042ca0(pppppppiVar24);" (call_expression "FUN_00042ca0(pppppppiVar24)" (identifier "FUN_00042ca0") (argument_list "(pppppppiVar24)" (( "(") (identifier "pppppppiVar24") () ")"))) (; ";")) (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" (identifier "pppppppiVar5") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_3 = (int *******)puVar30;" (assignment_expression "param_3 = (int *******)puVar30" (identifier "param_3") (= "=") (cast_expression "(int *******)puVar30" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "puVar30"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "bVar15 = *(byte *)(param_3 + 1);" (assignment_expression "bVar15 = *(byte *)(param_3 + 1)" (identifier "bVar15") (= "=") (pointer_expression "*(byte *)(param_3 + 1)" (* "*") (cast_expression "(byte *)(param_3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pppppppiVar24 = pppppppiVar5;" (assignment_expression "pppppppiVar24 = pppppppiVar5" (identifier "pppppppiVar24") (= "=") (identifier "pppppppiVar5")) (; ";")) (if_statement "if ((bVar15 & 0xf7) == 2) break;" (if "if") (parenthesized_expression "((bVar15 & 0xf7) == 2)" (( "(") (binary_expression "(bVar15 & 0xf7) == 2" (parenthesized_expression "(bVar15 & 0xf7)" (( "(") (binary_expression "bVar15 & 0xf7" (identifier "bVar15") (& "&") (number_literal "0xf7")) () ")")) (== "==") (number_literal "2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pppppppiVar5 = (int *******)0x0;\n  }" (else "else") (compound_statement "{\n    pppppppiVar5 = (int *******)0x0;\n  }" ({ "{") (expression_statement "pppppppiVar5 = (int *******)0x0;" (assignment_expression "pppppppiVar5 = (int *******)0x0" (identifier "pppppppiVar5") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (if_statement "if (local_2c == *(int *)puVar3) {\n    return pppppppiVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar3)" (( "(") (binary_expression "local_2c == *(int *)puVar3" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n    return pppppppiVar5;\n  }" ({ "{") (return_statement "return pppppppiVar5;" (return "return") (identifier "pppppppiVar5") (; ";")) (} "}"))) (expression_statement "pcVar6 = FUN_00051cfc;" (assignment_expression "pcVar6 = FUN_00051cfc" (identifier "pcVar6") (= "=") (identifier "FUN_00051cfc")) (; ";")) (expression_statement "iVar10 = local_2c;" (assignment_expression "iVar10 = local_2c" (identifier "iVar10") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar30 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar30 = PTR___stack_chk_fail_00075ba8" (identifier "puVar30") (= "=") (identifier "PTR___stack_chk_fail_00075ba8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00075ba8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar14 = local_5c;" (assignment_expression "piVar14 = local_5c" (identifier "piVar14") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" (identifier "puVar3") (= "=") (identifier "local_60")) (; ";")) (expression_statement "puStack_c8 = puVar30 + 0x2b884;" (assignment_expression "puStack_c8 = puVar30 + 0x2b884" (identifier "puStack_c8") (= "=") (binary_expression "puVar30 + 0x2b884" (identifier "puVar30") (+ "+") (number_literal "0x2b884"))) (; ";")) (expression_statement "puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);" (assignment_expression "puStack_ac = *(undefined4 **)(puVar30 + 0x23eec)" (identifier "puStack_ac") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + 0x23eec)" (* "*") (cast_expression "(undefined4 **)(puVar30 + 0x23eec)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0x23eec)" (( "(") (binary_expression "puVar30 + 0x23eec" (identifier "puVar30") (+ "+") (number_literal "0x23eec")) () ")"))))) (; ";")) (expression_statement "pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);" (assignment_expression "pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" (identifier "pcStack_b0") (= "=") (cast_expression "(code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + 0x23c7c) + 0x1ab4)" (( "(") (binary_expression "*(int *)(puVar30 + 0x23c7c) + 0x1ab4" (pointer_expression "*(int *)(puVar30 + 0x23c7c)" (* "*") (cast_expression "(int *)(puVar30 + 0x23c7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 0x23c7c)" (( "(") (binary_expression "puVar30 + 0x23c7c" (identifier "puVar30") (+ "+") (number_literal "0x23c7c")) () ")")))) (+ "+") (number_literal "0x1ab4")) () ")")))) (; ";")) (expression_statement "ppppppiVar25 = *pppppppiVar27;" (assignment_expression "ppppppiVar25 = *pppppppiVar27" (identifier "ppppppiVar25") (= "=") (pointer_expression "*pppppppiVar27" (* "*") (identifier "pppppppiVar27"))) (; ";")) (expression_statement "pppppppiStack_9c = (int *******)*puStack_ac;" (assignment_expression "pppppppiStack_9c = (int *******)*puStack_ac" (identifier "pppppppiStack_9c") (= "=") (cast_expression "(int *******)*puStack_ac" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puStack_ac" (* "*") (identifier "puStack_ac")))) (; ";")) (expression_statement "pppppiStack_b8 = ppppppiVar25[0x15];" (assignment_expression "pppppiStack_b8 = ppppppiVar25[0x15]" (identifier "pppppiStack_b8") (= "=") (subscript_expression "ppppppiVar25[0x15]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "piStack_78 = param_6;" (assignment_expression "piStack_78 = param_6" (identifier "piStack_78") (= "=") (identifier "param_6")) (; ";")) (expression_statement "piStack_cc = local_5c;" (assignment_expression "piStack_cc = local_5c" (identifier "piStack_cc") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puStack_d0 = local_60;" (assignment_expression "puStack_d0 = local_60" (identifier "puStack_d0") (= "=") (identifier "local_60")) (; ";")) (expression_statement "pppppppiVar19 = pppppppiVar20;" (assignment_expression "pppppppiVar19 = pppppppiVar20" (identifier "pppppppiVar19") (= "=") (identifier "pppppppiVar20")) (; ";")) (expression_statement "pppppppiVar22 = pppppppiVar18;" (assignment_expression "pppppppiVar22 = pppppppiVar18" (identifier "pppppppiVar22") (= "=") (identifier "pppppppiVar18")) (; ";")) (expression_statement "pppppppiStack_b4 = pppppppiVar27;" (assignment_expression "pppppppiStack_b4 = pppppppiVar27" (identifier "pppppppiStack_b4") (= "=") (identifier "pppppppiVar27")) (; ";")) (expression_statement "pppppppiStack_98 = pppppppiVar5;" (assignment_expression "pppppppiStack_98 = pppppppiVar5" (identifier "pppppppiStack_98") (= "=") (identifier "pppppppiVar5")) (; ";")) (expression_statement "puStack_94 = param_5;" (assignment_expression "puStack_94 = param_5" (identifier "puStack_94") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pppppppiStack_90 = param_3;" (assignment_expression "pppppppiStack_90 = param_3" (identifier "pppppppiStack_90") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puStack_8c = puVar26;" (assignment_expression "puStack_8c = puVar26" (identifier "puStack_8c") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "pppppppiStack_88 = param_2;" (assignment_expression "pppppppiStack_88 = param_2" (identifier "pppppppiStack_88") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uStack_84 = param_1;" (assignment_expression "uStack_84 = param_1" (identifier "uStack_84") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppiStack_80 = param_4;" (assignment_expression "pppppppiStack_80 = param_4" (identifier "pppppppiStack_80") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppiStack_7c = pppppppiVar29;" (assignment_expression "pppppppiStack_7c = pppppppiVar29" (identifier "pppppppiStack_7c") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "pcStack_74 = pcVar6;" (assignment_expression "pcStack_74 = pcVar6" (identifier "pcStack_74") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pppppppiStack_e8 = (int *******)FUN_00051ab4();" (assignment_expression "pppppppiStack_e8 = (int *******)FUN_00051ab4()" (identifier "pppppppiStack_e8") (= "=") (cast_expression "(int *******)FUN_00051ab4()" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00051ab4()" (identifier "FUN_00051ab4") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar14 == 0) {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }\n  else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" (if "if") (parenthesized_expression "(*piVar14 == 0)" (( "(") (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\nLAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);\n    pcStack_c0 = (code *)(iVar7 + -0x92c);\n    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);\n    do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);\n    *piVar14 = 0xc;\n    pppppppiVar19 = pppppppiVar5;\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(puStack_c8 + -0x7c08);" (assignment_expression "iVar7 = *(int *)(puStack_c8 + -0x7c08)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puStack_c8 + -0x7c08)" (* "*") (cast_expression "(int *)(puStack_c8 + -0x7c08)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_c8 + -0x7c08)" (( "(") (binary_expression "puStack_c8 + -0x7c08" (identifier "puStack_c8") (+ "+") (number_literal "-0x7c08")) () ")"))))) (; ";")) (labeled_statement "LAB_00051d9c:\n    param_4 = (int *******)(ppppppiVar25 + 0x10);" (statement_identifier "LAB_00051d9c") (: ":") (expression_statement "param_4 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "param_4 = (int *******)(ppppppiVar25 + 0x10)" (identifier "param_4") (= "=") (cast_expression "(int *******)(ppppppiVar25 + 0x10)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar25 + 0x10)" (( "(") (binary_expression "ppppppiVar25 + 0x10" (identifier "ppppppiVar25") (+ "+") (number_literal "0x10")) () ")")))) (; ";"))) (expression_statement "pcStack_c0 = (code *)(iVar7 + -0x92c);" (assignment_expression "pcStack_c0 = (code *)(iVar7 + -0x92c)" (identifier "pcStack_c0") (= "=") (cast_expression "(code *)(iVar7 + -0x92c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x92c)" (( "(") (binary_expression "iVar7 + -0x92c" (identifier "iVar7") (+ "+") (number_literal "-0x92c")) () ")")))) (; ";")) (expression_statement "pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);" (assignment_expression "pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" (identifier "pcStack_bc") (= "=") (cast_expression "(code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_c8 + -0x7c60) + 0x63ec)" (( "(") (binary_expression "*(int *)(puStack_c8 + -0x7c60) + 0x63ec" (pointer_expression "*(int *)(puStack_c8 + -0x7c60)" (* "*") (cast_expression "(int *)(puStack_c8 + -0x7c60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_c8 + -0x7c60)" (( "(") (binary_expression "puStack_c8 + -0x7c60" (identifier "puStack_c8") (+ "+") (number_literal "-0x7c60")) () ")")))) (+ "+") (number_literal "0x63ec")) () ")")))) (; ";")) (do_statement "do {\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    } while (pppppppiStack_e8 != (int *******)0x0);" (do "do") (compound_statement "{\n      pppppppiVar5 = pppppppiStack_e8;\n      pppppppiVar19 = (int *******)0x800000;\n      pppppppiStack_e8 = pppppppiVar5;\n      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;\n      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);\n      bVar15 = *(byte *)(pppppppiVar20 + 1);\n      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;\n      if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }\n      puStack_d0 = auStack_a4;\n      uStack_a0 = 10;\n      pppppppiVar27 = param_4;\n      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);\n    }" ({ "{") (expression_statement "pppppppiVar5 = pppppppiStack_e8;" (assignment_expression "pppppppiVar5 = pppppppiStack_e8" (identifier "pppppppiVar5") (= "=") (identifier "pppppppiStack_e8")) (; ";")) (expression_statement "pppppppiVar19 = (int *******)0x800000;" (assignment_expression "pppppppiVar19 = (int *******)0x800000" (identifier "pppppppiVar19") (= "=") (cast_expression "(int *******)0x800000" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x800000"))) (; ";")) (expression_statement "pppppppiStack_e8 = pppppppiVar5;" (assignment_expression "pppppppiStack_e8 = pppppppiVar5" (identifier "pppppppiStack_e8") (= "=") (identifier "pppppppiVar5")) (; ";")) (if_statement "if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;" (if "if") (parenthesized_expression "(*(char *)(pppppppiVar20 + 1) != '\n')" (( "(") (binary_expression "*(char *)(pppppppiVar20 + 1) != '\n'" (pointer_expression "*(char *)(pppppppiVar20 + 1)" (* "*") (cast_expression "(char *)(pppppppiVar20 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar20 + 1)" (( "(") (binary_expression "pppppppiVar20 + 1" (identifier "pppppppiVar20") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (goto_statement "goto LAB_00051eb8;" (goto "goto") (statement_identifier "LAB_00051eb8") (; ";"))) (expression_statement "iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);" (assignment_expression "iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" (identifier "iVar7") (= "=") (call_expression "(*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" (parenthesized_expression "(*pcStack_c0)" (( "(") (pointer_expression "*pcStack_c0" (* "*") (identifier "pcStack_c0")) () ")")) (argument_list "(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000)" (( "(") (identifier "pppppppiVar20") (, ",") (identifier "iVar10") (, ",") (binary_expression "(uint)pppppppiVar18 | 0x800000" (cast_expression "(uint)pppppppiVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppiVar18")) (| "|") (number_literal "0x800000")) () ")")))) (; ";")) (expression_statement "bVar15 = *(byte *)(pppppppiVar20 + 1);" (assignment_expression "bVar15 = *(byte *)(pppppppiVar20 + 1)" (identifier "bVar15") (= "=") (pointer_expression "*(byte *)(pppppppiVar20 + 1)" (* "*") (cast_expression "(byte *)(pppppppiVar20 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar20 + 1)" (( "(") (binary_expression "pppppppiVar20 + 1" (identifier "pppppppiVar20") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;" (assignment_expression "*(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7" (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(iVar10 + 0x28) + iVar7" (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar7"))) (; ";")) (if_statement "if ((bVar15 & 0xf7) == 2) {\n        pppppppiVar22 = (int *******)0x0;\n      }\n      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" (if "if") (parenthesized_expression "((bVar15 & 0xf7) == 2)" (( "(") (binary_expression "(bVar15 & 0xf7) == 2" (parenthesized_expression "(bVar15 & 0xf7)" (( "(") (binary_expression "bVar15 & 0xf7" (identifier "bVar15") (& "&") (number_literal "0xf7")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        pppppppiVar22 = (int *******)0x0;\n      }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" (else "else") (if_statement "if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" (if "if") (parenthesized_expression "((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9))" (( "(") (binary_expression "(puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)" (parenthesized_expression "(puVar3 == (undefined *)0x0)" (( "(") (binary_expression "puVar3 == (undefined *)0x0" (identifier "puVar3") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar22 = (int *******)0x0, bVar15 != 9)" (( "(") (comma_expression "pppppppiVar22 = (int *******)0x0, bVar15 != 9" (assignment_expression "pppppppiVar22 = (int *******)0x0" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (, ",") (binary_expression "bVar15 != 9" (identifier "bVar15") (!= "!=") (number_literal "9"))) () ")"))) () ")")) (compound_statement "{\n        pppppppiVar29 = (int *******)ppppppiVar25[0x15];\n        ppppppiVar25[0x15] = pppppiStack_b8;\n        piStack_cc = piVar14;\n        puStack_d0 = puVar3;\n        pppppppiVar27 = pppppppiStack_b4;\n        pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);\n        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }\n        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);\n        ppppppiVar25[0x15] = (int *****)pppppppiVar29;\n      }" ({ "{") (expression_statement "pppppppiVar29 = (int *******)ppppppiVar25[0x15];" (assignment_expression "pppppppiVar29 = (int *******)ppppppiVar25[0x15]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)ppppppiVar25[0x15]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "ppppppiVar25[0x15]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "ppppppiVar25[0x15] = pppppiStack_b8;" (assignment_expression "ppppppiVar25[0x15] = pppppiStack_b8" (subscript_expression "ppppppiVar25[0x15]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "pppppiStack_b8")) (; ";")) (expression_statement "piStack_cc = piVar14;" (assignment_expression "piStack_cc = piVar14" (identifier "piStack_cc") (= "=") (identifier "piVar14")) (; ";")) (expression_statement "puStack_d0 = puVar3;" (assignment_expression "puStack_d0 = puVar3" (identifier "puStack_d0") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "pppppppiVar27 = pppppppiStack_b4;" (assignment_expression "pppppppiVar27 = pppppppiStack_b4" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiStack_b4")) (; ";")) (expression_statement "pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);" (assignment_expression "pppppppiVar22 =\n             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" (parenthesized_expression "(*pcStack_b0)" (( "(") (pointer_expression "*pcStack_b0" (* "*") (identifier "pcStack_b0")) () ")")) (argument_list "(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18)" (( "(") (identifier "iVar10") (, ",") (identifier "pppppppiStack_b4") (, ",") (identifier "pppppppiVar20") (, ",") (identifier "pppppppiVar18") () ")"))))) (; ";")) (if_statement "if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }" (if "if") (parenthesized_expression "((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0))" (( "(") (binary_expression "(*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)" (parenthesized_expression "(*piVar14 != 0)" (( "(") (binary_expression "*piVar14 != 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar22 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar22 == (int *******)0x0" (identifier "pppppppiVar22") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n          pppppppiVar19 = (int *******)0x0;\n          if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }\n          pppppppiStack_e8 = (int *******)0x0;\n          goto LAB_00051eb8;\n        }" ({ "{") (expression_statement "pppppppiVar19 = (int *******)0x0;" (assignment_expression "pppppppiVar19 = (int *******)0x0" (identifier "pppppppiVar19") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppiVar5 != (int *******)0x0) {\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }" (if "if") (parenthesized_expression "(pppppppiVar5 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar5 != (int *******)0x0" (identifier "pppppppiVar5") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);\n            FUN_00042ca0(pppppppiVar5);\n          }" ({ "{") (expression_statement "pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);" (assignment_expression "pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puStack_c8 + -0x7c60) + 0x4588)" (( "(") (binary_expression "*(int *)(puStack_c8 + -0x7c60) + 0x4588" (pointer_expression "*(int *)(puStack_c8 + -0x7c60)" (* "*") (cast_expression "(int *)(puStack_c8 + -0x7c60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_c8 + -0x7c60)" (( "(") (binary_expression "puStack_c8 + -0x7c60" (identifier "puStack_c8") (+ "+") (number_literal "-0x7c60")) () ")")))) (+ "+") (number_literal "0x4588")) () ")")))) (; ";")) (expression_statement "FUN_00042ca0(pppppppiVar5);" (call_expression "FUN_00042ca0(pppppppiVar5)" (identifier "FUN_00042ca0") (argument_list "(pppppppiVar5)" (( "(") (identifier "pppppppiVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "pppppppiStack_e8 = (int *******)0x0;" (assignment_expression "pppppppiStack_e8 = (int *******)0x0" (identifier "pppppppiStack_e8") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00051eb8;" (goto "goto") (statement_identifier "LAB_00051eb8") (; ";")) (} "}"))) (expression_statement "pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);" (assignment_expression "pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29)" (( "(") (binary_expression "(uint)ppppppiVar25[0x15] | (uint)pppppppiVar29" (cast_expression "(uint)ppppppiVar25[0x15]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar25[0x15]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x15") (] "]"))) (| "|") (cast_expression "(uint)pppppppiVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppiVar29"))) () ")")))) (; ";")) (expression_statement "ppppppiVar25[0x15] = (int *****)pppppppiVar29;" (assignment_expression "ppppppiVar25[0x15] = (int *****)pppppppiVar29" (subscript_expression "ppppppiVar25[0x15]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x15") (] "]")) (= "=") (cast_expression "(int *****)pppppppiVar29" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "pppppppiVar29"))) (; ";")) (} "}"))))) (expression_statement "puStack_d0 = auStack_a4;" (assignment_expression "puStack_d0 = auStack_a4" (identifier "puStack_d0") (= "=") (identifier "auStack_a4")) (; ";")) (expression_statement "uStack_a0 = 10;" (assignment_expression "uStack_a0 = 10" (identifier "uStack_a0") (= "=") (number_literal "10")) (; ";")) (expression_statement "pppppppiVar27 = param_4;" (assignment_expression "pppppppiVar27 = param_4" (identifier "pppppppiVar27") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);" (assignment_expression "pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe)" (identifier "pppppppiStack_e8") (= "=") (cast_expression "(int *******)(*pcStack_bc)(ppppppiVar25 + 0xe)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcStack_bc)(ppppppiVar25 + 0xe)" (parenthesized_expression "(*pcStack_bc)" (( "(") (pointer_expression "*pcStack_bc" (* "*") (identifier "pcStack_bc")) () ")")) (argument_list "(ppppppiVar25 + 0xe)" (( "(") (binary_expression "ppppppiVar25 + 0xe" (identifier "ppppppiVar25") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiStack_e8 != (int *******)0x0)" (( "(") (binary_expression "pppppppiStack_e8 != (int *******)0x0" (identifier "pppppppiStack_e8") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*piVar14 = 0xc;" (assignment_expression "*piVar14 = 0xc" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pppppppiVar19 = pppppppiVar5;" (assignment_expression "pppppppiVar19 = pppppppiVar5" (identifier "pppppppiVar19") (= "=") (identifier "pppppppiVar5")) (; ";")) (} "}")) (else_clause "else {\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" (else "else") (compound_statement "{\n    iVar7 = *(int *)(puStack_c8 + -0x7c08);\n    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;\n    pppppppiStack_e8 = (int *******)0x0;\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(puStack_c8 + -0x7c08);" (assignment_expression "iVar7 = *(int *)(puStack_c8 + -0x7c08)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puStack_c8 + -0x7c08)" (* "*") (cast_expression "(int *)(puStack_c8 + -0x7c08)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_c8 + -0x7c08)" (( "(") (binary_expression "puStack_c8 + -0x7c08" (identifier "puStack_c8") (+ "+") (number_literal "-0x7c08")) () ")"))))) (; ";")) (if_statement "if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;" (if "if") (parenthesized_expression "(pppppppiStack_e8 != (int *******)0x0)" (( "(") (binary_expression "pppppppiStack_e8 != (int *******)0x0" (identifier "pppppppiStack_e8") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00051d9c;" (goto "goto") (statement_identifier "LAB_00051d9c") (; ";"))) (expression_statement "pppppppiStack_e8 = (int *******)0x0;" (assignment_expression "pppppppiStack_e8 = (int *******)0x0" (identifier "pppppppiStack_e8") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_00051eb8:\n  if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }" (statement_identifier "LAB_00051eb8") (: ":") (if_statement "if (pppppppiStack_9c == (int *******)*puStack_ac) {\n    return pppppppiStack_e8;\n  }" (if "if") (parenthesized_expression "(pppppppiStack_9c == (int *******)*puStack_ac)" (( "(") (binary_expression "pppppppiStack_9c == (int *******)*puStack_ac" (identifier "pppppppiStack_9c") (== "==") (cast_expression "(int *******)*puStack_ac" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puStack_ac" (* "*") (identifier "puStack_ac")))) () ")")) (compound_statement "{\n    return pppppppiStack_e8;\n  }" ({ "{") (return_statement "return pppppppiStack_e8;" (return "return") (identifier "pppppppiStack_e8") (; ";")) (} "}")))) (expression_statement "pcVar6 = *(code **)(puStack_c8 + -0x79d8);" (assignment_expression "pcVar6 = *(code **)(puStack_c8 + -0x79d8)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(puStack_c8 + -0x79d8)" (* "*") (cast_expression "(code **)(puStack_c8 + -0x79d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_c8 + -0x79d8)" (( "(") (binary_expression "puStack_c8 + -0x79d8" (identifier "puStack_c8") (+ "+") (number_literal "-0x79d8")) () ")"))))) (; ";")) (expression_statement "pcVar32 = FUN_00051f24;" (assignment_expression "pcVar32 = FUN_00051f24" (identifier "pcVar32") (= "=") (identifier "FUN_00051f24")) (; ";")) (expression_statement "pppppppiVar5 = pppppppiStack_9c;" (assignment_expression "pppppppiVar5 = pppppppiStack_9c" (identifier "pppppppiVar5") (= "=") (identifier "pppppppiStack_9c")) (; ";")) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_f4 = puVar3;" (assignment_expression "puStack_f4 = puVar3" (identifier "puStack_f4") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "piStack_f8 = piVar14;" (assignment_expression "piStack_f8 = piVar14" (identifier "piStack_f8") (= "=") (identifier "piVar14")) (; ";")) (expression_statement "pppppppiVar5[3] = (int ******)pppppppiVar22;" (assignment_expression "pppppppiVar5[3] = (int ******)pppppppiVar22" (subscript_expression "pppppppiVar5[3]" (identifier "pppppppiVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int ******)pppppppiVar22" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar22"))) (; ";")) (expression_statement "pppppppiVar5[2] = (int ******)0x0;" (assignment_expression "pppppppiVar5[2] = (int ******)0x0" (subscript_expression "pppppppiVar5[2]" (identifier "pppppppiVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar5[6] = (int ******)0x0;" (assignment_expression "pppppppiVar5[6] = (int ******)0x0" (subscript_expression "pppppppiVar5[6]" (identifier "pppppppiVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar31 = *(uint **)(pcVar6 + 0x23cc4);" (assignment_expression "puVar31 = *(uint **)(pcVar6 + 0x23cc4)" (identifier "puVar31") (= "=") (pointer_expression "*(uint **)(pcVar6 + 0x23cc4)" (* "*") (cast_expression "(uint **)(pcVar6 + 0x23cc4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cc4)" (( "(") (binary_expression "pcVar6 + 0x23cc4" (identifier "pcVar6") (+ "+") (number_literal "0x23cc4")) () ")"))))) (; ";")) (expression_statement "pppppppiVar24 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar24 = (int *******)*pppppppiVar5" (identifier "pppppppiVar24") (= "=") (cast_expression "(int *******)*pppppppiVar5" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")))) (; ";")) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;" (assignment_expression "*(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9" (pointer_expression "*(byte *)(pppppppiVar5 + 7)" (* "*") (cast_expression "(byte *)(pppppppiVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar5 + 7)" (( "(") (binary_expression "pppppppiVar5 + 7" (identifier "pppppppiVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(pppppppiVar5 + 7) & 9" (pointer_expression "*(byte *)(pppppppiVar5 + 7)" (* "*") (cast_expression "(byte *)(pppppppiVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar5 + 7)" (( "(") (binary_expression "pppppppiVar5 + 7" (identifier "pppppppiVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "9"))) (; ";")) (expression_statement "uStack_10c = *puVar31;" (assignment_expression "uStack_10c = *puVar31" (identifier "uStack_10c") (= "=") (pointer_expression "*puVar31" (* "*") (identifier "puVar31"))) (; ";")) (expression_statement "pppppppiStack_108 = pppppppiVar20;" (assignment_expression "pppppppiStack_108 = pppppppiVar20" (identifier "pppppppiStack_108") (= "=") (identifier "pppppppiVar20")) (; ";")) (expression_statement "iStack_104 = iVar10;" (assignment_expression "iStack_104 = iVar10" (identifier "iStack_104") (= "=") (identifier "iVar10")) (; ";")) (expression_statement "ppppppiStack_100 = ppppppiVar25;" (assignment_expression "ppppppiStack_100 = ppppppiVar25" (identifier "ppppppiStack_100") (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiStack_fc = pppppppiVar18;" (assignment_expression "pppppppiStack_fc = pppppppiVar18" (identifier "pppppppiStack_fc") (= "=") (identifier "pppppppiVar18")) (; ";")) (expression_statement "pppppppiStack_f0 = param_4;" (assignment_expression "pppppppiStack_f0 = param_4" (identifier "pppppppiStack_f0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppiStack_ec = pppppppiVar29;" (assignment_expression "pppppppiStack_ec = pppppppiVar29" (identifier "pppppppiStack_ec") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "pcStack_e4 = pcVar32;" (assignment_expression "pcStack_e4 = pcVar32" (identifier "pcStack_e4") (= "=") (identifier "pcVar32")) (; ";")) (if_statement "if (pppppppiVar5[1] < (int ******)0xa0) {\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }" (if "if") (parenthesized_expression "(pppppppiVar5[1] < (int ******)0xa0)" (( "(") (binary_expression "pppppppiVar5[1] < (int ******)0xa0" (subscript_expression "pppppppiVar5[1]" (identifier "pppppppiVar5") ([ "[") (number_literal "1") (] "]")) (< "<") (cast_expression "(int ******)0xa0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xa0"))) () ")")) (compound_statement "{\n    pppppppiVar18 = (int *******)0xa0;\n    pppppppiVar20 = pppppppiVar19;\n    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }\n    *pppppppiVar5 = (int ******)pppppppiVar24;\n    pppppppiVar5[1] = (int ******)0xa0;\n  }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)0xa0;" (assignment_expression "pppppppiVar18 = (int *******)0xa0" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0xa0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);" (assignment_expression "pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" (identifier "pppppppiVar24") (= "=") (cast_expression "(int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c10))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23c10)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23c10)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c10)" (( "(") (binary_expression "pcVar6 + 0x23c10" (identifier "pcVar6") (+ "+") (number_literal "0x23c10")) () ")"))))) () ")")) (argument_list "(pppppppiVar24,0xa0)" (( "(") (identifier "pppppppiVar24") (, ",") (number_literal "0xa0") () ")"))))) (; ";")) (if_statement "if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }" (if "if") (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar24 == (int *******)0x0" (identifier "pppppppiVar24") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppiVar27 = (int *******)0xc;\n      goto LAB_000526ec;\n    }" ({ "{") (expression_statement "pppppppiVar27 = (int *******)0xc;" (assignment_expression "pppppppiVar27 = (int *******)0xc" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)0xc" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (goto_statement "goto LAB_000526ec;" (goto "goto") (statement_identifier "LAB_000526ec") (; ";")) (} "}"))) (expression_statement "*pppppppiVar5 = (int ******)pppppppiVar24;" (assignment_expression "*pppppppiVar5 = (int ******)pppppppiVar24" (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")) (= "=") (cast_expression "(int ******)pppppppiVar24" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar24"))) (; ";")) (expression_statement "pppppppiVar5[1] = (int ******)0xa0;" (assignment_expression "pppppppiVar5[1] = (int ******)0xa0" (subscript_expression "pppppppiVar5[1]" (identifier "pppppppiVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)0xa0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xa0"))) (; ";")) (} "}"))) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23bb0);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23bb0)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23bb0)" (( "(") (binary_expression "pcVar6 + 0x23bb0" (identifier "pcVar6") (+ "+") (number_literal "0x23bb0")) () ")"))))) (; ";")) (expression_statement "pppppppiVar20 = (int *******)0xa0;" (assignment_expression "pppppppiVar20 = (int *******)0xa0" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)0xa0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar5[2] = (int ******)0xa0;" (assignment_expression "pppppppiVar5[2] = (int ******)0xa0" (subscript_expression "pppppppiVar5[2]" (identifier "pppppppiVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int ******)0xa0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "(*pcVar32)(pppppppiVar24,0);" (call_expression "(*pcVar32)(pppppppiVar24,0)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(pppppppiVar24,0)" (( "(") (identifier "pppppppiVar24") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pppppppiVar24[0x10] = (int ******)0x1f;" (assignment_expression "pppppppiVar24[0x10] = (int ******)0x1f" (subscript_expression "pppppppiVar24[0x10]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(int ******)0x1f" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1f"))) (; ";")) (if_statement "if (pppppppiVar19 < (int *******)0xaaaaaaa) {\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }\n  else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" (if "if") (parenthesized_expression "(pppppppiVar19 < (int *******)0xaaaaaaa)" (( "(") (binary_expression "pppppppiVar19 < (int *******)0xaaaaaaa" (identifier "pppppppiVar19") (< "<") (cast_expression "(int *******)0xaaaaaaa" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xaaaaaaa"))) () ")")) (compound_statement "{\n    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);\n    pcVar32 = *(code **)(pcVar6 + 0x23c08);\n    pppppppiVar24[1] = (int ******)pppppppiVar29;\n    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);\n    *pppppppiVar24 = ppppppiVar25;\n    if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }\n    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);\n    pppppppiVar24[0x11] = ppppppiVar25;\n    pcVar32 = *(code **)(pcVar6 + 0x23c44);\n    pppppppiVar24[8] = ppppppiVar8;\n    ppppppiVar25 = (int ******)(*pcVar32)();\n    pcVar32 = *(code **)(pcVar6 + 0x23b44);\n    pppppppiVar24[0x17] = ppppppiVar25;\n    pbVar9 = (byte *)(*pcVar32)(0xe);\n    pppppppiVar18 = (int *******)0x55;\n    if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    bVar15 = *(byte *)(pppppppiVar24 + 0x16);\n    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;\n    if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }\n    if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;\n    pppppppiStack_178 = (int *******)0x0;\n    if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }\n  }" ({ "{") (expression_statement "pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);" (assignment_expression "pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)((int)pppppppiVar19 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar19 + 1)" (( "(") (binary_expression "(int)pppppppiVar19 + 1" (cast_expression "(int)pppppppiVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar19")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) (; ";")) (expression_statement "pppppppiVar24[1] = (int ******)pppppppiVar29;" (assignment_expression "pppppppiVar24[1] = (int ******)pppppppiVar29" (subscript_expression "pppppppiVar24[1]" (identifier "pppppppiVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)pppppppiVar29" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar29"))) (; ";")) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)(*pcVar32)((int)pppppppiVar29 * 8)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*pcVar32)((int)pppppppiVar29 * 8)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "((int)pppppppiVar29 * 8)" (( "(") (binary_expression "(int)pppppppiVar29 * 8" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (* "*") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*pppppppiVar24 = ppppppiVar25;" (assignment_expression "*pppppppiVar24 = ppppppiVar25" (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")) (= "=") (identifier "ppppppiVar25")) (; ";")) (if_statement "if (pppppppiVar19 == (int *******)0x0) {\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }\n    else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" (if "if") (parenthesized_expression "(pppppppiVar19 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar19 == (int *******)0x0" (identifier "pppppppiVar19") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ppppppiVar25 = (int ******)0x0;\n      pppppppiVar18 = (int *******)0x1;\n    }" ({ "{") (expression_statement "ppppppiVar25 = (int ******)0x0;" (assignment_expression "ppppppiVar25 = (int ******)0x0" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" (else "else") (compound_statement "{\n      pppppppiVar18 = (int *******)0x1;\n      do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);\n    }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (do_statement "do {\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      } while (pppppppiVar18 <= pppppppiVar19);" (do "do") (compound_statement "{\n        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);\n        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);\n      }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);" (assignment_expression "pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)((int)pppppppiVar18 * 2)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar18 * 2)" (( "(") (binary_expression "(int)pppppppiVar18 * 2" (cast_expression "(int)pppppppiVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar18")) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);" (assignment_expression "ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)((int)pppppppiVar18 + -1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)pppppppiVar18 + -1)" (( "(") (binary_expression "(int)pppppppiVar18 + -1" (cast_expression "(int)pppppppiVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar18")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar18 <= pppppppiVar19)" (( "(") (binary_expression "pppppppiVar18 <= pppppppiVar19" (identifier "pppppppiVar18") (<= "<=") (identifier "pppppppiVar19")) () ")")) (; ";")) (} "}")))) (expression_statement "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);" (assignment_expression "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" (identifier "ppppppiVar8") (= "=") (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23aa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23aa4)" (( "(") (binary_expression "pcVar6 + 0x23aa4" (identifier "pcVar6") (+ "+") (number_literal "0x23aa4")) () ")"))))) () ")")) (argument_list "(0xc,pppppppiVar18)" (( "(") (number_literal "0xc") (, ",") (identifier "pppppppiVar18") () ")"))))) (; ";")) (expression_statement "pppppppiVar24[0x11] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x11] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x11]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c44);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c44)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23c44)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c44)" (( "(") (binary_expression "pcVar6 + 0x23c44" (identifier "pcVar6") (+ "+") (number_literal "0x23c44")) () ")"))))) (; ";")) (expression_statement "pppppppiVar24[8] = ppppppiVar8;" (assignment_expression "pppppppiVar24[8] = ppppppiVar8" (subscript_expression "pppppppiVar24[8]" (identifier "pppppppiVar24") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "ppppppiVar8")) (; ";")) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)();" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)()" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)(*pcVar32)()" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23b44);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23b44)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23b44)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23b44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23b44)" (( "(") (binary_expression "pcVar6 + 0x23b44" (identifier "pcVar6") (+ "+") (number_literal "0x23b44")) () ")"))))) (; ";")) (expression_statement "pppppppiVar24[0x17] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x17] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x17]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pbVar9 = (byte *)(*pcVar32)(0xe);" (assignment_expression "pbVar9 = (byte *)(*pcVar32)(0xe)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*pcVar32)(0xe)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar32)(0xe)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(0xe)" (( "(") (number_literal "0xe") () ")"))))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)0x55;" (assignment_expression "pppppppiVar18 = (int *******)0x55" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x55" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x55"))) (; ";")) (if_statement "if ((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }" (if "if") (parenthesized_expression "((((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46))" (( "(") (binary_expression "(((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&\n       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54))" (( "(") (binary_expression "((*pbVar9 & 0xdf) == 0x55) &&\n        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar9 & 0xdf) == 0x55)" (( "(") (binary_expression "(*pbVar9 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar9 & 0xdf)" (( "(") (binary_expression "*pbVar9 & 0xdf" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x55")) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)" (( "(") (comma_expression "pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54" (assignment_expression "pppppppiVar18 = (int *******)&DAT_00000046" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)&DAT_00000046" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000046" (& "&") (identifier "DAT_00000046")))) (, ",") (binary_expression "(pbVar9[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar9[1] & 0xdf)" (( "(") (binary_expression "pbVar9[1] & 0xdf" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x54"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)" (( "(") (comma_expression "pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46" (assignment_expression "pppppppiVar18 = (int *******)&DAT_00000004" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)&DAT_00000004" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004")))) (, ",") (binary_expression "(pbVar9[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar9[2] & 0xdf)" (( "(") (binary_expression "pbVar9[2] & 0xdf" (subscript_expression "pbVar9[2]" (identifier "pbVar9") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x46"))) () ")"))) () ")")) (compound_statement "{\n      iVar10 = 3;\n      if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }\n      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);\n      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);\n      if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }\n    }" ({ "{") (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" (identifier "iVar10") (= "=") (number_literal "3")) (; ";")) (if_statement "if (pbVar9[3] == 0x2d) {\n        iVar10 = 4;\n      }" (if "if") (parenthesized_expression "(pbVar9[3] == 0x2d)" (( "(") (binary_expression "pbVar9[3] == 0x2d" (subscript_expression "pbVar9[3]" (identifier "pbVar9") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n        iVar10 = 4;\n      }" ({ "{") (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" (identifier "iVar10") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);" (assignment_expression "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x2b48)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2b48" (pointer_expression "*(int *)(pcVar6 + 0x23694)" (* "*") (cast_expression "(int *)(pcVar6 + 0x23694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x23694)" (( "(") (binary_expression "pcVar6 + 0x23694" (identifier "pcVar6") (+ "+") (number_literal "0x23694")) () ")")))) (+ "+") (number_literal "0x2b48")) () ")")))) (; ";")) (expression_statement "iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);" (assignment_expression "iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d14))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23d14)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23d14)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23d14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23d14)" (( "(") (binary_expression "pcVar6 + 0x23d14" (identifier "pcVar6") (+ "+") (number_literal "0x23d14")) () ")"))))) () ")")) (argument_list "(pbVar9 + iVar10,pppppppiVar18)" (( "(") (binary_expression "pbVar9 + iVar10" (identifier "pbVar9") (+ "+") (identifier "iVar10")) (, ",") (identifier "pppppppiVar18") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;\n      }" ({ "{") (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xdf" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0xdf")) (| "|") (number_literal "0x20"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar15 = *(byte *)(pppppppiVar24 + 0x16);" (assignment_expression "bVar15 = *(byte *)(pppppppiVar24 + 0x16)" (identifier "bVar15") (= "=") (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "bVar15 & 0xef" (identifier "bVar15") (& "&") (number_literal "0xef"))) (; ";")) (if_statement "if ((int)pppppppiVar24[0x17] < 2) {\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }\n    else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" (if "if") (parenthesized_expression "((int)pppppppiVar24[0x17] < 2)" (( "(") (binary_expression "(int)pppppppiVar24[0x17] < 2" (cast_expression "(int)pppppppiVar24[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0x17]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\nLAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;\n    }" ({ "{") (labeled_statement "LAB_00052094:\n      ppppppiVar25 = *pppppppiVar24;" (statement_identifier "LAB_00052094") (: ":") (expression_statement "ppppppiVar25 = *pppppppiVar24;" (assignment_expression "ppppppiVar25 = *pppppppiVar24" (identifier "ppppppiVar25") (= "=") (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24"))) (; ";"))) (} "}")) (else_clause "else {\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" (else "else") (compound_statement "{\n      if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }\n      pppppppiVar18 = (int *******)0x1;\n      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);\n      pppppppiVar24[0xf] = ppppppiVar25;\n      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;\n      iVar10 = 0;\n      do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);\n      ppppppiVar25 = *pppppppiVar24;\n      pppppppiVar18 = (int *******)0x20;\n    }" ({ "{") (if_statement "if ((bVar15 & 0x20) != 0) {\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" (if "if") (parenthesized_expression "((bVar15 & 0x20) != 0)" (( "(") (binary_expression "(bVar15 & 0x20) != 0" (parenthesized_expression "(bVar15 & 0x20)" (( "(") (binary_expression "bVar15 & 0x20" (identifier "bVar15") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);\n        goto LAB_00052094;\n      }" ({ "{") (expression_statement "pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);" (assignment_expression "pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064)" (subscript_expression "pppppppiVar24[0xf]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x3064)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x3064" (pointer_expression "*(int *)(pcVar6 + 0x23694)" (* "*") (cast_expression "(int *)(pcVar6 + 0x23694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x23694)" (( "(") (binary_expression "pcVar6 + 0x23694" (identifier "pcVar6") (+ "+") (number_literal "0x23694")) () ")")))) (+ "+") (number_literal "0x3064")) () ")")))) (; ";")) (goto_statement "goto LAB_00052094;" (goto "goto") (statement_identifier "LAB_00052094") (; ";")) (} "}"))) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);" (assignment_expression "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x23aa4))(0x20,1)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23aa4))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23aa4)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23aa4)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23aa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23aa4)" (( "(") (binary_expression "pcVar6 + 0x23aa4" (identifier "pcVar6") (+ "+") (number_literal "0x23aa4")) () ")"))))) () ")")) (argument_list "(0x20,1)" (( "(") (number_literal "0x20") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "pppppppiVar24[0xf] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xf] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xf]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (if_statement "if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;" (if "if") (parenthesized_expression "(ppppppiVar25 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 == (int ******)0x0" (identifier "ppppppiVar25") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000526c8;" (goto "goto") (statement_identifier "LAB_000526c8") (; ";"))) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      } while (iVar10 != 0x20);" (do "do") (compound_statement "{\n        uVar16 = iVar10 << 3;\n        uVar28 = 0;\n        do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);\nLAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);\n        iVar10 = iVar10 + 4;\n      }" ({ "{") (expression_statement "uVar16 = iVar10 << 3;" (assignment_expression "uVar16 = iVar10 << 3" (identifier "uVar16") (= "=") (binary_expression "iVar10 << 3" (identifier "iVar10") (<< "<<") (number_literal "3"))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        } while (uVar21 + 1 != 0x20);" (do "do") (compound_statement "{\n          while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }\n          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;\n          uVar16 = uVar16 + 1;\n          uVar28 = uVar21 + 1;\n        }" ({ "{") (while_statement "while( true ) {\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar21 = uVar28;\n            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);\n            if (uVar28 == 0xffffffff) break;\n            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);\n            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }\n            uVar16 = uVar16 + 1;\n            uVar28 = uVar21 + 1;\n            if (uVar21 + 1 == 0x20) goto LAB_000527e4;\n          }" ({ "{") (expression_statement "uVar21 = uVar28;" (assignment_expression "uVar21 = uVar28" (identifier "uVar21") (= "=") (identifier "uVar28")) (; ";")) (expression_statement "uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);" (assignment_expression "uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16)" (identifier "uVar28") (= "=") (call_expression "(**(code **)(pcVar6 + 0x23b9c))(uVar16)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23b9c))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23b9c)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23b9c)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23b9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23b9c)" (( "(") (binary_expression "pcVar6 + 0x23b9c" (identifier "pcVar6") (+ "+") (number_literal "0x23b9c")) () ")"))))) () ")")) (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")")))) (; ";")) (if_statement "if (uVar28 == 0xffffffff) break;" (if "if") (parenthesized_expression "(uVar28 == 0xffffffff)" (( "(") (binary_expression "uVar28 == 0xffffffff" (identifier "uVar28") (== "==") (number_literal "0xffffffff")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);" (assignment_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10) =\n                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10)" (* "*") (cast_expression "(uint *)((int)pppppppiVar24[0xf] + iVar10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppiVar24[0xf] + iVar10)" (( "(") (binary_expression "(int)pppppppiVar24[0xf] + iVar10" (cast_expression "(int)pppppppiVar24[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0xf]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xf") (] "]"))) (+ "+") (identifier "iVar10")) () ")")))) (= "=") (binary_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppiVar24[0xf] + iVar10)" (* "*") (cast_expression "(uint *)((int)pppppppiVar24[0xf] + iVar10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppiVar24[0xf] + iVar10)" (( "(") (binary_expression "(int)pppppppiVar24[0xf] + iVar10" (cast_expression "(int)pppppppiVar24[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0xf]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xf") (] "]"))) (+ "+") (identifier "iVar10")) () ")")))) (| "|") (binary_expression "1 << (uVar21 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }" (if "if") (parenthesized_expression "(((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16))" (( "(") (binary_expression "((uVar16 & 0xffffff80) == 0) && (uVar28 != 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 "(uVar28 != uVar16)" (( "(") (binary_expression "uVar28 != uVar16" (identifier "uVar28") (!= "!=") (identifier "uVar16")) () ")"))) () ")")) (compound_statement "{\nLAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;\n            }" ({ "{") (labeled_statement "LAB_00052780:\n              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;" (statement_identifier "LAB_00052780") (: ":") (expression_statement "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0xef" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0xef")) (| "|") (number_literal "0x10"))) (; ";"))) (} "}"))) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar28 = uVar21 + 1;" (assignment_expression "uVar28 = uVar21 + 1" (identifier "uVar28") (= "=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar21 + 1 == 0x20) goto LAB_000527e4;" (if "if") (parenthesized_expression "(uVar21 + 1 == 0x20)" (( "(") (binary_expression "uVar21 + 1 == 0x20" (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) (== "==") (number_literal "0x20")) () ")")) (goto_statement "goto LAB_000527e4;" (goto "goto") (statement_identifier "LAB_000527e4") (; ";"))) (} "}"))) (if_statement "if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;" (if "if") (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")) () ")")) (goto_statement "goto LAB_00052780;" (goto "goto") (statement_identifier "LAB_00052780") (; ";"))) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar28 = uVar21 + 1;" (assignment_expression "uVar28 = uVar21 + 1" (identifier "uVar28") (= "=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 + 1 != 0x20)" (( "(") (binary_expression "uVar21 + 1 != 0x20" (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (labeled_statement "LAB_000527e4:\n        pppppppiVar20 = (int *******)(uVar21 + 1);" (statement_identifier "LAB_000527e4") (: ":") (expression_statement "pppppppiVar20 = (int *******)(uVar21 + 1);" (assignment_expression "pppppppiVar20 = (int *******)(uVar21 + 1)" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)(uVar21 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uVar21 + 1)" (( "(") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "iVar10 = iVar10 + 4;" (assignment_expression "iVar10 = iVar10 + 4" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0x20)" (( "(") (binary_expression "iVar10 != 0x20" (identifier "iVar10") (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "ppppppiVar25 = *pppppppiVar24;" (assignment_expression "ppppppiVar25 = *pppppppiVar24" (identifier "ppppppiVar25") (= "=") (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24"))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)0x20;" (assignment_expression "pppppppiVar18 = (int *******)0x20" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x20" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x20"))) (; ";")) (} "}")))) (if_statement "if ((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))\n    goto LAB_000526c8;" (if "if") (parenthesized_expression "((ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))" (( "(") (binary_expression "(ppppppiVar25 == (int ******)0x0) ||\n       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0)" (parenthesized_expression "(ppppppiVar25 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 == (int ******)0x0" (identifier "ppppppiVar25") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0)" (( "(") (comma_expression "iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0" (assignment_expression "iVar10 = *(int *)(pcVar6 + 0x23b8c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pcVar6 + 0x23b8c)" (* "*") (cast_expression "(int *)(pcVar6 + 0x23b8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x23b8c)" (( "(") (binary_expression "pcVar6 + 0x23b8c" (identifier "pcVar6") (+ "+") (number_literal "0x23b8c")) () ")"))))) (, ",") (binary_expression "pppppppiVar24[8] == (int ******)0x0" (subscript_expression "pppppppiVar24[8]" (identifier "pppppppiVar24") ([ "[") (number_literal "8") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_000526c8;" (goto "goto") (statement_identifier "LAB_000526c8") (; ";"))) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }\n    else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];\n      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);\n      uVar28 = (uint)pppppppiVar22 & 0x400000;\n      uStack_118 = uVar28 != 0;\n      ppppppiVar25 = pppppppiVar24[0x17];\n      pppppppiVar18 = (int *******)0x1;\n      if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }\n      uVar16 = (int)pppppppiVar24[0x16] << 2;\n      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);\n      bStack_115 = (byte)pppppppiVar18;\n      bStack_117 = (byte)(uVar16 >> 0x1f);\n      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);\n      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;\n      pppppppiStack_160 = pppppppiVar27;\n      pppppppiStack_134 = pppppppiVar19;\n      pppppppiStack_130 = pppppppiVar19;\n      pppppppiStack_12c = pppppppiVar19;\n      pppppppiStack_128 = pppppppiVar19;\n      ppppppiStack_120 = ppppppiVar8;\n      ppppppiStack_110 = ppppppiVar25;\n      if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }\n      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n      if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }\nLAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;\n      pppppppiStack_178 = pppppppiVar18;\nLAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];\n      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }\n      pppppppiVar27[0x10] = (int ******)0x1f;\n      pppppppiVar27[0xe] = (int ******)0x0;\n      pppppppiVar27[0xd] = (int ******)0x0;\n      (*pcVar32)(pppppppiVar27[4]);\n      pppppppiVar27[4] = (int ******)0x0;\n      FUN_00044d40(&pppppppiStack_160);\n      pppppppiVar18 = pppppppiVar29;\njoined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }\n    }" ({ "{") (labeled_statement "LAB_000520dc:\n      ppppppiVar8 = pppppppiVar5[5];" (statement_identifier "LAB_000520dc") (: ":") (expression_statement "ppppppiVar8 = pppppppiVar5[5];" (assignment_expression "ppppppiVar8 = pppppppiVar5[5]" (identifier "ppppppiVar8") (= "=") (subscript_expression "pppppppiVar5[5]" (identifier "pppppppiVar5") ([ "[") (number_literal "5") (] "]"))) (; ";"))) (expression_statement "(**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);" (call_expression "(**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23bb0))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23bb0)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23bb0)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23bb0)" (( "(") (binary_expression "pcVar6 + 0x23bb0" (identifier "pcVar6") (+ "+") (number_literal "0x23bb0")) () ")"))))) () ")")) (argument_list "(apppppppiStack_15c,0,0x4c)" (( "(") (identifier "apppppppiStack_15c") (, ",") (number_literal "0") (, ",") (number_literal "0x4c") () ")"))) (; ";")) (expression_statement "uVar28 = (uint)pppppppiVar22 & 0x400000;" (assignment_expression "uVar28 = (uint)pppppppiVar22 & 0x400000" (identifier "uVar28") (= "=") (binary_expression "(uint)pppppppiVar22 & 0x400000" (cast_expression "(uint)pppppppiVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppiVar22")) (& "&") (number_literal "0x400000"))) (; ";")) (expression_statement "uStack_118 = uVar28 != 0;" (assignment_expression "uStack_118 = uVar28 != 0" (identifier "uStack_118") (= "=") (binary_expression "uVar28 != 0" (identifier "uVar28") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "ppppppiVar25 = pppppppiVar24[0x17];" (assignment_expression "ppppppiVar25 = pppppppiVar24[0x17]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar24[0x17]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)0x1;" (assignment_expression "pppppppiVar18 = (int *******)0x1" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (ppppppiVar8 == (int ******)0x0) {\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }" (if "if") (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar8 == (int ******)0x0" (identifier "ppppppiVar8") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;\n      }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)(uint)(byte)uStack_118;" (assignment_expression "pppppppiVar18 = (int *******)(uint)(byte)uStack_118" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(uint)(byte)uStack_118" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (cast_expression "(uint)(byte)uStack_118" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)uStack_118" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_118"))))) (; ";")) (} "}"))) (expression_statement "uVar16 = (int)pppppppiVar24[0x16] << 2;" (assignment_expression "uVar16 = (int)pppppppiVar24[0x16] << 2" (identifier "uVar16") (= "=") (binary_expression "(int)pppppppiVar24[0x16] << 2" (cast_expression "(int)pppppppiVar24[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0x16]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "pppppppiVar20 = (int *******)(uVar16 >> 0x1f);" (assignment_expression "pppppppiVar20 = (int *******)(uVar16 >> 0x1f)" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)(uVar16 >> 0x1f)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uVar16 >> 0x1f)" (( "(") (binary_expression "uVar16 >> 0x1f" (identifier "uVar16") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bStack_115 = (byte)pppppppiVar18;" (assignment_expression "bStack_115 = (byte)pppppppiVar18" (identifier "bStack_115") (= "=") (cast_expression "(byte)pppppppiVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pppppppiVar18"))) (; ";")) (expression_statement "bStack_117 = (byte)(uVar16 >> 0x1f);" (assignment_expression "bStack_117 = (byte)(uVar16 >> 0x1f)" (identifier "bStack_117") (= "=") (call_expression "(byte)(uVar16 >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar16 >> 0x1f)" (( "(") (binary_expression "uVar16 >> 0x1f" (identifier "uVar16") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" (identifier "bStack_116") (= "=") (call_expression "(byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f)" (( "(") (binary_expression "(uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppiVar24[0x16] << 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppiVar24[0x16] << 3)" (( "(") (binary_expression "(int)pppppppiVar24[0x16] << 3" (cast_expression "(int)pppppppiVar24[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0x16]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "3")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pppppppiVar4 = (int *******)(uint)(byte)uStack_118;" (assignment_expression "pppppppiVar4 = (int *******)(uint)(byte)uStack_118" (identifier "pppppppiVar4") (= "=") (cast_expression "(int *******)(uint)(byte)uStack_118" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (cast_expression "(uint)(byte)uStack_118" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)uStack_118" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_118"))))) (; ";")) (expression_statement "pppppppiStack_160 = pppppppiVar27;" (assignment_expression "pppppppiStack_160 = pppppppiVar27" (identifier "pppppppiStack_160") (= "=") (identifier "pppppppiVar27")) (; ";")) (expression_statement "pppppppiStack_134 = pppppppiVar19;" (assignment_expression "pppppppiStack_134 = pppppppiVar19" (identifier "pppppppiStack_134") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiStack_130 = pppppppiVar19;" (assignment_expression "pppppppiStack_130 = pppppppiVar19" (identifier "pppppppiStack_130") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiStack_12c = pppppppiVar19;" (assignment_expression "pppppppiStack_12c = pppppppiVar19" (identifier "pppppppiStack_12c") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiStack_128 = pppppppiVar19;" (assignment_expression "pppppppiStack_128 = pppppppiVar19" (identifier "pppppppiStack_128") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "ppppppiStack_120 = ppppppiVar8;" (assignment_expression "ppppppiStack_120 = ppppppiVar8" (identifier "ppppppiStack_120") (= "=") (identifier "ppppppiVar8")) (; ";")) (expression_statement "ppppppiStack_110 = ppppppiVar25;" (assignment_expression "ppppppiStack_110 = ppppppiVar25" (identifier "ppppppiStack_110") (= "=") (identifier "ppppppiVar25")) (; ";")) (if_statement "if (pppppppiVar19 == (int *******)0x0) {\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }" (if "if") (parenthesized_expression "(pppppppiVar19 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar19 == (int *******)0x0" (identifier "pppppppiVar19") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00052158:\n        pppppppiVar29 = pppppppiVar4;\n        if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }\n        apppppppiStack_15c[0] = pppppppiVar27;\n        if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }\nLAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;\n        pppppppiStack_178 = (int *******)0x0;\n        ppppppiVar25 = *pppppppiVar5;\n        pppppppiVar5[6] = (int ******)0x0;\n        ppppppiVar25[0x20] = (int *****)pppppppiVar22;\n        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);\n        iStack_138 = iStack_138 + iVar7;\n        pppppppiVar29 = pppppppiVar5;\n        pppppppiVar20 = (int *******)apppppppiStack_174;\n        pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);\n        if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }\n        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);\n        ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);\n        pppppppiVar20 = pppppppiVar27;\nLAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;\n        pppppppiVar27 = (int *******)*pppppppiVar5;\n        if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        goto LAB_000521dc;\n      }" ({ "{") (labeled_statement "LAB_00052158:\n        pppppppiVar29 = pppppppiVar4;" (statement_identifier "LAB_00052158") (: ":") (expression_statement "pppppppiVar29 = pppppppiVar4;" (assignment_expression "pppppppiVar29 = pppppppiVar4" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiVar4")) (; ";"))) (if_statement "if (pppppppiVar18 != (int *******)0x0) {\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }" (if "if") (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 != (int *******)0x0" (identifier "pppppppiVar18") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppiVar27 = apppppppiStack_15c[0];\n        }" ({ "{") (expression_statement "pppppppiVar27 = apppppppiStack_15c[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_15c[0]" (identifier "pppppppiVar27") (= "=") (subscript_expression "apppppppiStack_15c[0]" (identifier "apppppppiStack_15c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (expression_statement "apppppppiStack_15c[0] = pppppppiVar27;" (assignment_expression "apppppppiStack_15c[0] = pppppppiVar27" (subscript_expression "apppppppiStack_15c[0]" (identifier "apppppppiStack_15c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pppppppiVar27")) (; ";")) (if_statement "if (uVar28 == 0) {\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }\n        else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" (if "if") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }\n        }" ({ "{") (if_statement "if (1 < (int)ppppppiVar25) {\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }\n          else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" (if "if") (parenthesized_expression "(1 < (int)ppppppiVar25)" (( "(") (binary_expression "1 < (int)ppppppiVar25" (number_literal "1") (< "<") (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25"))) () ")")) (compound_statement "{\n            FUN_000437e4(&pppppppiStack_160);\n            pppppppiVar18 = pppppppiStack_144;\n          }" ({ "{") (expression_statement "FUN_000437e4(&pppppppiStack_160);" (call_expression "FUN_000437e4(&pppppppiStack_160)" (identifier "FUN_000437e4") (argument_list "(&pppppppiStack_160)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) () ")"))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiStack_144")) (; ";")) (} "}")) (else_clause "else if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" (else "else") (if_statement "if (ppppppiVar8 == (int ******)0x0) {\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }\n          else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" (if "if") (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar8 == (int ******)0x0" (identifier "ppppppiVar8") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pppppppiStack_140 = pppppppiStack_13c;\n            pppppppiVar18 = pppppppiStack_13c;\n          }" ({ "{") (expression_statement "pppppppiStack_140 = pppppppiStack_13c;" (assignment_expression "pppppppiStack_140 = pppppppiStack_13c" (identifier "pppppppiStack_140") (= "=") (identifier "pppppppiStack_13c")) (; ";")) (expression_statement "pppppppiVar18 = pppppppiStack_13c;" (assignment_expression "pppppppiVar18 = pppppppiStack_13c" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiStack_13c")) (; ";")) (} "}")) (else_clause "else {\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" (else "else") (compound_statement "{\n            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }\n            pppppppiVar18 = pppppppiStack_144;\n            pppppppiStack_140 = pppppppiStack_144;\n            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }\n          }" ({ "{") (if_statement "if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {\n              pppppppiStack_13c = pppppppiStack_130;\n            }" (if "if") (parenthesized_expression "((int)pppppppiStack_130 <= (int)pppppppiStack_13c)" (( "(") (binary_expression "(int)pppppppiStack_130 <= (int)pppppppiStack_13c" (cast_expression "(int)pppppppiStack_130" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_130")) (<= "<=") (cast_expression "(int)pppppppiStack_13c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_13c"))) () ")")) (compound_statement "{\n              pppppppiStack_13c = pppppppiStack_130;\n            }" ({ "{") (expression_statement "pppppppiStack_13c = pppppppiStack_130;" (assignment_expression "pppppppiStack_13c = pppppppiStack_130" (identifier "pppppppiStack_13c") (= "=") (identifier "pppppppiStack_130")) (; ";")) (} "}"))) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiStack_144")) (; ";")) (expression_statement "pppppppiStack_140 = pppppppiStack_144;" (assignment_expression "pppppppiStack_140 = pppppppiStack_144" (identifier "pppppppiStack_140") (= "=") (identifier "pppppppiStack_144")) (; ";")) (if_statement "if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }" (if "if") (parenthesized_expression "((int)pppppppiStack_144 < (int)pppppppiStack_13c)" (( "(") (binary_expression "(int)pppppppiStack_144 < (int)pppppppiStack_13c" (cast_expression "(int)pppppppiStack_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_144")) (< "<") (cast_expression "(int)pppppppiStack_13c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_13c"))) () ")")) (compound_statement "{\n              do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);\n            }" ({ "{") (do_statement "do {\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              } while (pppppppiStack_13c != pppppppiStack_144);" (do "do") (compound_statement "{\n                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);\n                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;\n                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);\n                *puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));\n                pppppppiVar18 = pppppppiStack_13c;\n                pppppppiStack_140 = pppppppiStack_13c;\n              }" ({ "{") (expression_statement "puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);" (assignment_expression "puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppiVar27 + (int)pppppppiStack_144)" (( "(") (binary_expression "(int)pppppppiVar27 + (int)pppppppiStack_144" (cast_expression "(int)pppppppiVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar27")) (+ "+") (cast_expression "(int)pppppppiStack_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_144"))) () ")")))) (; ";")) (expression_statement "iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;" (assignment_expression "iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144" (identifier "iVar7") (= "=") (binary_expression "(int)pppppppiStack_160 + (int)pppppppiStack_144" (cast_expression "(int)pppppppiStack_160" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_160")) (+ "+") (cast_expression "(int)pppppppiStack_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_144")))) (; ";")) (expression_statement "pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);" (assignment_expression "pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1)" (identifier "pppppppiStack_144") (= "=") (cast_expression "(int *******)((int)pppppppiStack_144 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiStack_144 + 1)" (( "(") (binary_expression "(int)pppppppiStack_144 + 1" (cast_expression "(int)pppppppiStack_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_144")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));" (assignment_expression "*puVar12 = *(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (pointer_expression "*(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" (* "*") (cast_expression "(undefined1 *)\n                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148))" (( "(") (binary_expression "(int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148)" (cast_expression "(int)ppppppiStack_120" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiStack_120")) (+ "+") (binary_expression "(uint)*(byte *)(iVar7 + iStack_148)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar7 + iStack_148)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iStack_148)" (( "(") (binary_expression "iVar7 + iStack_148" (identifier "iVar7") (+ "+") (identifier "iStack_148")) () ")"))))) () ")"))))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiStack_13c;" (assignment_expression "pppppppiVar18 = pppppppiStack_13c" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiStack_13c")) (; ";")) (expression_statement "pppppppiStack_140 = pppppppiStack_13c;" (assignment_expression "pppppppiStack_140 = pppppppiStack_13c" (identifier "pppppppiStack_140") (= "=") (identifier "pppppppiStack_13c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiStack_13c != pppppppiStack_144)" (( "(") (binary_expression "pppppppiStack_13c != pppppppiStack_144" (identifier "pppppppiStack_13c") (!= "!=") (identifier "pppppppiStack_144")) () ")")) (; ";")) (} "}"))) (} "}")))))) (} "}")) (else_clause "else {\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" (else "else") (compound_statement "{\n          if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }\n          FUN_00043700(&pppppppiStack_160);\n          pppppppiVar18 = pppppppiStack_144;\n        }" ({ "{") (if_statement "if (1 < (int)ppppppiVar25) {\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }" (if "if") (parenthesized_expression "(1 < (int)ppppppiVar25)" (( "(") (binary_expression "1 < (int)ppppppiVar25" (number_literal "1") (< "<") (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25"))) () ")")) (compound_statement "{\n            do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);\n            goto LAB_000521d4;\n          }" ({ "{") (do_statement "do {\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            } while (pppppppiVar18 == (int *******)0x0);" (do "do") (compound_statement "{\n              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);\n              if (pppppppiVar18 != (int *******)0x0) break;\n              pppppppiVar18 = pppppppiStack_144;\n              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;\n              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);\n            }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)FUN_00043a6c(&pppppppiStack_160)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00043a6c(&pppppppiStack_160)" (identifier "FUN_00043a6c") (argument_list "(&pppppppiStack_160)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) () ")"))))) (; ";")) (if_statement "if (pppppppiVar18 != (int *******)0x0) break;" (if "if") (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 != (int *******)0x0" (identifier "pppppppiVar18") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiStack_144")) (; ";")) (if_statement "if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))\n              goto LAB_00052338;" (if "if") (parenthesized_expression "(((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))" (( "(") (binary_expression "((int)pppppppiVar19 <= (int)pppppppiStack_140) ||\n                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c)" (parenthesized_expression "((int)pppppppiVar19 <= (int)pppppppiStack_140)" (( "(") (binary_expression "(int)pppppppiVar19 <= (int)pppppppiStack_140" (cast_expression "(int)pppppppiVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar19")) (<= "<=") (cast_expression "(int)pppppppiStack_140" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_140"))) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c)" (( "(") (comma_expression "pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),\n                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c" (assignment_expression "pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)((int)pppppppiStack_13c << 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiStack_13c << 1)" (( "(") (binary_expression "(int)pppppppiStack_13c << 1" (cast_expression "(int)pppppppiStack_13c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_13c")) (<< "<<") (number_literal "1")) () ")")))) (, ",") (binary_expression "(int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c" (binary_expression "(int)pppppppiStack_144 + (int)pppppppiVar24[0x17]" (cast_expression "(int)pppppppiStack_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_144")) (+ "+") (cast_expression "(int)pppppppiVar24[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0x17]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x17") (] "]")))) (< "<") (cast_expression "(int)pppppppiStack_13c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_13c")))) () ")"))) () ")")) (goto_statement "goto LAB_00052338;" (goto "goto") (statement_identifier "LAB_00052338") (; ";"))) (expression_statement "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00043278(&pppppppiStack_160,pppppppiVar29)" (identifier "FUN_00043278") (argument_list "(&pppppppiStack_160,pppppppiVar29)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) (, ",") (identifier "pppppppiVar29") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 == (int *******)0x0" (identifier "pppppppiVar18") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (goto_statement "goto LAB_000521d4;" (goto "goto") (statement_identifier "LAB_000521d4") (; ";")) (} "}"))) (expression_statement "FUN_00043700(&pppppppiStack_160);" (call_expression "FUN_00043700(&pppppppiStack_160)" (identifier "FUN_00043700") (argument_list "(&pppppppiStack_160)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) () ")"))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiStack_144;" (assignment_expression "pppppppiVar18 = pppppppiStack_144" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiStack_144")) (; ";")) (} "}")))) (labeled_statement "LAB_00052338:\n        pppppppiStack_144 = pppppppiVar18;" (statement_identifier "LAB_00052338") (: ":") (expression_statement "pppppppiStack_144 = pppppppiVar18;" (assignment_expression "pppppppiStack_144 = pppppppiVar18" (identifier "pppppppiStack_144") (= "=") (identifier "pppppppiVar18")) (; ";"))) (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar25 = *pppppppiVar5;" (assignment_expression "ppppppiVar25 = *pppppppiVar5" (identifier "ppppppiVar25") (= "=") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5"))) (; ";")) (expression_statement "pppppppiVar5[6] = (int ******)0x0;" (assignment_expression "pppppppiVar5[6] = (int ******)0x0" (subscript_expression "pppppppiVar5[6]" (identifier "pppppppiVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar25[0x20] = (int *****)pppppppiVar22;" (assignment_expression "ppppppiVar25[0x20] = (int *****)pppppppiVar22" (subscript_expression "ppppppiVar25[0x20]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x20") (] "]")) (= "=") (cast_expression "(int *****)pppppppiVar22" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "pppppppiVar22"))) (; ";")) (expression_statement "iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);" (assignment_expression "iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" (identifier "iVar7") (= "=") (call_expression "FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" (identifier "FUN_0004f6d4") (argument_list "(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000)" (( "(") (identifier "apppppppiStack_174") (, ",") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) (, ",") (binary_expression "(uint)pppppppiVar22 | 0x800000" (cast_expression "(uint)pppppppiVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppiVar22")) (| "|") (number_literal "0x800000")) () ")")))) (; ";")) (expression_statement "iStack_138 = iStack_138 + iVar7;" (assignment_expression "iStack_138 = iStack_138 + iVar7" (identifier "iStack_138") (= "=") (binary_expression "iStack_138 + iVar7" (identifier "iStack_138") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "pppppppiVar29 = pppppppiVar5;" (assignment_expression "pppppppiVar29 = pppppppiVar5" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiVar5")) (; ";")) (expression_statement "pppppppiVar20 = (int *******)apppppppiStack_174;" (assignment_expression "pppppppiVar20 = (int *******)apppppppiStack_174" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)apppppppiStack_174" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "apppppppiStack_174"))) (; ";")) (expression_statement "pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178);" (assignment_expression "pppppppiVar27 =\n             (int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)\n             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" (identifier "FUN_00051cfc") (argument_list "(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,\n                          &pppppppiStack_178)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) (, ",") (identifier "pppppppiVar5") (, ",") (identifier "apppppppiStack_174") (, ",") (identifier "pppppppiVar22") (, ",") (number_literal "0") (, ",") (pointer_expression "&pppppppiStack_178" (& "&") (identifier "pppppppiStack_178")) () ")"))))) (; ";")) (if_statement "if (pppppppiStack_178 == (int *******)0x0) {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }\n        else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" (if "if") (parenthesized_expression "(pppppppiStack_178 == (int *******)0x0)" (( "(") (binary_expression "pppppppiStack_178 == (int *******)0x0" (identifier "pppppppiStack_178") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          pppppppiVar20 = (int *******)0x0;\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);\n          ppppppiVar11 = ppppppiVar8;\n          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;\n        }" ({ "{") (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")"))))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)(ppppppiVar25 + 0x10)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar25 + 0x10)" (( "(") (binary_expression "ppppppiVar25 + 0x10" (identifier "ppppppiVar25") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iStack_168 = CONCAT13(2,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(2,iStack_168._1_3_)" (identifier "iStack_168") (= "=") (call_expression "CONCAT13(2,iStack_168._1_3_)" (identifier "CONCAT13") (argument_list "(2,iStack_168._1_3_)" (( "(") (number_literal "2") (, ",") (field_expression "iStack_168._1_3_" (identifier "iStack_168") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);" (assignment_expression "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" (identifier "ppppppiVar8") (= "=") (cast_expression "(int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" (identifier "FUN_000463ec") (argument_list "(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c)" (( "(") (binary_expression "ppppppiVar25 + 0xe" (identifier "ppppppiVar25") (+ "+") (number_literal "0xe")) (, ",") (identifier "pppppppiVar29") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppppiStack_16c" (& "&") (identifier "ppppppiStack_16c")) () ")"))))) (; ";")) (expression_statement "ppppppiVar11 = ppppppiVar8;" (assignment_expression "ppppppiVar11 = ppppppiVar8" (identifier "ppppppiVar11") (= "=") (identifier "ppppppiVar8")) (; ";")) (if_statement "if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;" (if "if") (parenthesized_expression "(pppppppiVar27 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar27 == (int *******)0x0" (identifier "pppppppiVar27") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00052400;" (goto "goto") (statement_identifier "LAB_00052400") (; ";"))) (} "}")) (else_clause "else {\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" (else "else") (compound_statement "{\n          iVar7 = *(int *)(pcVar6 + 0x239fc);\n          if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }\n          iStack_168 = CONCAT13(2,iStack_168._1_3_);\n          ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);\n        }" ({ "{") (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")"))))) (; ";")) (if_statement "if (pppppppiVar27 == (int *******)0x0) {\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }" (if "if") (parenthesized_expression "(pppppppiVar27 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar27 == (int *******)0x0" (identifier "pppppppiVar27") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pppppppiVar27 = (int *******)*pppppppiVar5;\n            pppppppiVar24[0xd] = (int ******)0x0;\n            goto LAB_000521dc;\n          }" ({ "{") (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)*pppppppiVar5" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")))) (; ";")) (expression_statement "pppppppiVar24[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar24[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar24[0xd]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000521dc;" (goto "goto") (statement_identifier "LAB_000521dc") (; ";")) (} "}"))) (expression_statement "iStack_168 = CONCAT13(2,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(2,iStack_168._1_3_)" (identifier "iStack_168") (= "=") (call_expression "CONCAT13(2,iStack_168._1_3_)" (identifier "CONCAT13") (argument_list "(2,iStack_168._1_3_)" (( "(") (number_literal "2") (, ",") (field_expression "iStack_168._1_3_" (identifier "iStack_168") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);" (assignment_expression "ppppppiVar8 = (int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" (identifier "ppppppiVar8") (= "=") (cast_expression "(int ******)\n                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" (identifier "FUN_000463ec") (argument_list "(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c)" (( "(") (binary_expression "ppppppiVar25 + 0xe" (identifier "ppppppiVar25") (+ "+") (number_literal "0xe")) (, ",") (binary_expression "ppppppiVar25 + 0x10" (identifier "ppppppiVar25") (+ "+") (number_literal "0x10")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppppiStack_16c" (& "&") (identifier "ppppppiStack_16c")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);" (assignment_expression "pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)(ppppppiVar25 + 0x10)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppiVar25 + 0x10)" (( "(") (binary_expression "ppppppiVar25 + 0x10" (identifier "ppppppiVar25") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iStack_168 = CONCAT13(0x10,iStack_168._1_3_);" (assignment_expression "iStack_168 = CONCAT13(0x10,iStack_168._1_3_)" (identifier "iStack_168") (= "=") (call_expression "CONCAT13(0x10,iStack_168._1_3_)" (identifier "CONCAT13") (argument_list "(0x10,iStack_168._1_3_)" (( "(") (number_literal "0x10") (, ",") (field_expression "iStack_168._1_3_" (identifier "iStack_168") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c);" (assignment_expression "ppppppiVar11 = (int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" (identifier "ppppppiVar11") (= "=") (cast_expression "(int ******)\n                       (*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*(code *)(iVar7 + 0x63ec))\n                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" (parenthesized_expression "(*(code *)(iVar7 + 0x63ec))" (( "(") (pointer_expression "*(code *)(iVar7 + 0x63ec)" (* "*") (cast_expression "(code *)(iVar7 + 0x63ec)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x63ec)" (( "(") (binary_expression "iVar7 + 0x63ec" (identifier "iVar7") (+ "+") (number_literal "0x63ec")) () ")")))) () ")")) (argument_list "(ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,\n                                  &ppppppiStack_16c)" (( "(") (binary_expression "ppppppiVar25 + 0xe" (identifier "ppppppiVar25") (+ "+") (number_literal "0xe")) (, ",") (identifier "pppppppiVar29") (, ",") (identifier "pppppppiVar27") (, ",") (identifier "ppppppiVar8") (, ",") (pointer_expression "&ppppppiStack_16c" (& "&") (identifier "ppppppiStack_16c")) () ")"))))) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar27")) (; ";")) (labeled_statement "LAB_00052400:\n        pppppppiVar19 = &ppppppiStack_16c;" (statement_identifier "LAB_00052400") (: ":") (expression_statement "pppppppiVar19 = &ppppppiStack_16c;" (assignment_expression "pppppppiVar19 = &ppppppiStack_16c" (identifier "pppppppiVar19") (= "=") (pointer_expression "&ppppppiStack_16c" (& "&") (identifier "ppppppiStack_16c"))) (; ";"))) (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)*pppppppiVar5" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")))) (; ";")) (if_statement "if ((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }\n        else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" (if "if") (parenthesized_expression "((ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0))" (( "(") (binary_expression "(ppppppiVar8 == (int ******)0x0) ||\n           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)" (parenthesized_expression "(ppppppiVar8 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar8 == (int ******)0x0" (identifier "ppppppiVar8") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)" (( "(") (comma_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) (, ",") (binary_expression "ppppppiVar11 == (int ******)0x0" (identifier "ppppppiVar11") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          pppppppiVar24[0xd] = (int ******)0x0;\n          pppppppiStack_178 = (int *******)0xc;\n        }" ({ "{") (expression_statement "pppppppiVar24[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar24[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar24[0xd]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0xc" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else {\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" (else "else") (compound_statement "{\n          pppppppiVar29 = (int *******)pppppppiVar27[1];\n          pppppppiVar24[0xd] = ppppppiVar11;\n          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[3] = ppppppiVar25;\n          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);\n          pppppppiVar27[4] = (int ******)pppppppiVar20;\n          iVar7 = (int)pppppppiVar29 * 0xc;\n          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);\n          pcVar32 = *(code **)(pcVar6 + 0x23c08);\n          pppppppiVar27[5] = ppppppiVar8;\n          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);\n          pppppppiVar27[6] = ppppppiVar11;\n          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }\nLAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;\n        }" ({ "{") (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[1];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[1]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar27[1]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar27[1]" (identifier "pppppppiVar27") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pppppppiVar24[0xd] = ppppppiVar11;" (assignment_expression "pppppppiVar24[0xd] = ppppppiVar11" (subscript_expression "pppppppiVar24[0xd]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "ppppppiVar11")) (; ";")) (expression_statement "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);" (assignment_expression "ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)(*pcVar32)((int)pppppppiVar29 << 2)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*pcVar32)((int)pppppppiVar29 << 2)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "((int)pppppppiVar29 << 2)" (( "(") (binary_expression "(int)pppppppiVar29 << 2" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) (; ";")) (expression_statement "pppppppiVar27[3] = ppppppiVar25;" (assignment_expression "pppppppiVar27[3] = ppppppiVar25" (subscript_expression "pppppppiVar27[3]" (identifier "pppppppiVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);" (assignment_expression "pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2)" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)(*pcVar32)((int)pppppppiVar29 << 2)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar32)((int)pppppppiVar29 << 2)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "((int)pppppppiVar29 << 2)" (( "(") (binary_expression "(int)pppppppiVar29 << 2" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "pppppppiVar27[4] = (int ******)pppppppiVar20;" (assignment_expression "pppppppiVar27[4] = (int ******)pppppppiVar20" (subscript_expression "pppppppiVar27[4]" (identifier "pppppppiVar27") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ******)pppppppiVar20" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppiVar20"))) (; ";")) (expression_statement "iVar7 = (int)pppppppiVar29 * 0xc;" (assignment_expression "iVar7 = (int)pppppppiVar29 * 0xc" (identifier "iVar7") (= "=") (binary_expression "(int)pppppppiVar29 * 0xc" (cast_expression "(int)pppppppiVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar29")) (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);" (assignment_expression "ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7)" (identifier "ppppppiVar8") (= "=") (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x23c08))(iVar7)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23c08)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23c08);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23c08)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) (; ";")) (expression_statement "pppppppiVar27[5] = ppppppiVar8;" (assignment_expression "pppppppiVar27[5] = ppppppiVar8" (subscript_expression "pppppppiVar27[5]" (identifier "pppppppiVar27") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "ppppppiVar8")) (; ";")) (expression_statement "ppppppiVar11 = (int ******)(*pcVar32)(iVar7);" (assignment_expression "ppppppiVar11 = (int ******)(*pcVar32)(iVar7)" (identifier "ppppppiVar11") (= "=") (cast_expression "(int ******)(*pcVar32)(iVar7)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*pcVar32)(iVar7)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "pppppppiVar27[6] = ppppppiVar11;" (assignment_expression "pppppppiVar27[6] = ppppppiVar11" (subscript_expression "pppppppiVar27[6]" (identifier "pppppppiVar27") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "ppppppiVar11")) (; ";")) (if_statement "if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" (if "if") (parenthesized_expression "((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0))" (( "(") (binary_expression "(((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)" (parenthesized_expression "(((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0))" (( "(") (binary_expression "((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&\n              (ppppppiVar8 != (int ******)0x0)" (parenthesized_expression "((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0))" (( "(") (binary_expression "(ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)" (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 != (int ******)0x0" (identifier "ppppppiVar25") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar20 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar20 != (int *******)0x0" (identifier "pppppppiVar20") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(ppppppiVar8 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar8 != (int ******)0x0" (identifier "ppppppiVar8") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(ppppppiVar11 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar11 != (int ******)0x0" (identifier "ppppppiVar11") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n            ppppppiVar8 = pppppppiVar5[6];\n            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);\n            pppppppiVar27[0x21] = ppppppiVar25;\n            if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }\n            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);\n            pppppppiVar20 = pppppppiVar5;\n            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n            if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }\n            goto LAB_000521d4;\n          }" ({ "{") (expression_statement "ppppppiVar8 = pppppppiVar5[6];" (assignment_expression "ppppppiVar8 = pppppppiVar5[6]" (identifier "ppppppiVar8") (= "=") (subscript_expression "pppppppiVar5[6]" (identifier "pppppppiVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);" (assignment_expression "ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23c08)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) () ")")) (argument_list "((int)ppppppiVar8 << 2)" (( "(") (binary_expression "(int)ppppppiVar8 << 2" (cast_expression "(int)ppppppiVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar8")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "pppppppiVar27[0x21] = ppppppiVar25;" (assignment_expression "pppppppiVar27[0x21] = ppppppiVar25" (subscript_expression "pppppppiVar27[0x21]" (identifier "pppppppiVar27") ([ "[") (number_literal "0x21") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }" (if "if") (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 != (int ******)0x0" (identifier "ppppppiVar25") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              ppppppiVar11 = (int ******)0x0;\n              if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }\n              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);\n              if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }\n            }" ({ "{") (expression_statement "ppppppiVar11 = (int ******)0x0;" (assignment_expression "ppppppiVar11 = (int ******)0x0" (identifier "ppppppiVar11") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (ppppppiVar8 != (int ******)0x0) {\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }" (if "if") (parenthesized_expression "(ppppppiVar8 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar8 != (int ******)0x0" (identifier "ppppppiVar8") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);\n              }" ({ "{") (do_statement "do {\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                } while (ppppppiVar11 != ppppppiVar8);" (do "do") (compound_statement "{\n                  *ppppppiVar25 = (int *****)ppppppiVar11;\n                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                  ppppppiVar25 = ppppppiVar25 + 1;\n                }" ({ "{") (expression_statement "*ppppppiVar25 = (int *****)ppppppiVar11;" (assignment_expression "*ppppppiVar25 = (int *****)ppppppiVar11" (pointer_expression "*ppppppiVar25" (* "*") (identifier "ppppppiVar25")) (= "=") (cast_expression "(int *****)ppppppiVar11" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar11"))) (; ";")) (expression_statement "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);" (assignment_expression "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1)" (identifier "ppppppiVar11") (= "=") (cast_expression "(int ******)((int)ppppppiVar11 + 1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppiVar11 + 1)" (( "(") (binary_expression "(int)ppppppiVar11 + 1" (cast_expression "(int)ppppppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppiVar25 = ppppppiVar25 + 1;" (assignment_expression "ppppppiVar25 = ppppppiVar25 + 1" (identifier "ppppppiVar25") (= "=") (binary_expression "ppppppiVar25 + 1" (identifier "ppppppiVar25") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar11 != ppppppiVar8)" (( "(") (binary_expression "ppppppiVar11 != ppppppiVar8" (identifier "ppppppiVar11") (!= "!=") (identifier "ppppppiVar8")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);" (call_expression "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27)" (identifier "FUN_000458f0") (argument_list "(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27)" (( "(") (subscript_expression "pppppppiVar27[0xd]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xd") (] "]")) (, ",") (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x54d4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")")))) (+ "+") (number_literal "0x54d4")) (, ",") (identifier "pppppppiVar27") () ")"))) (; ";")) (if_statement "if (pppppppiVar5[6] == (int ******)0x0) {\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }\n              else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" (if "if") (parenthesized_expression "(pppppppiVar5[6] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar5[6] == (int ******)0x0" (subscript_expression "pppppppiVar5[6]" (identifier "pppppppiVar5") ([ "[") (number_literal "6") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                ppppppiVar25 = pppppppiVar27[0x21];\nLAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);\n                pppppppiVar27[0x21] = (int ******)0x0;\n              }" ({ "{") (expression_statement "ppppppiVar25 = pppppppiVar27[0x21];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0x21]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar27[0x21]" (identifier "pppppppiVar27") ([ "[") (number_literal "0x21") (] "]"))) (; ";")) (labeled_statement "LAB_00052530:\n                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);" (statement_identifier "LAB_00052530") (: ":") (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) () ")")) (argument_list "(ppppppiVar25)" (( "(") (identifier "ppppppiVar25") () ")"))) (; ";"))) (expression_statement "pppppppiVar27[0x21] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0x21] = (int ******)0x0" (subscript_expression "pppppppiVar27[0x21]" (identifier "pppppppiVar27") ([ "[") (number_literal "0x21") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" (else "else") (compound_statement "{\n                ppppppiVar25 = pppppppiVar27[0x21];\n                if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }\n              }" ({ "{") (expression_statement "ppppppiVar25 = pppppppiVar27[0x21];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0x21]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar27[0x21]" (identifier "pppppppiVar27") ([ "[") (number_literal "0x21") (] "]"))) (; ";")) (if_statement "if (*ppppppiVar25 == (int *****)0x0) {\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }" (if "if") (parenthesized_expression "(*ppppppiVar25 == (int *****)0x0)" (( "(") (binary_expression "*ppppppiVar25 == (int *****)0x0" (pointer_expression "*ppppppiVar25" (* "*") (identifier "ppppppiVar25")) (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  ppppppiVar11 = (int ******)0x0;\n                  ppppppiVar8 = ppppppiVar25;\n                  do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);\n                }" ({ "{") (expression_statement "ppppppiVar11 = (int ******)0x0;" (assignment_expression "ppppppiVar11 = (int ******)0x0" (identifier "ppppppiVar11") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar8 = ppppppiVar25;" (assignment_expression "ppppppiVar8 = ppppppiVar25" (identifier "ppppppiVar8") (= "=") (identifier "ppppppiVar25")) (; ";")) (do_statement "do {\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);" (do "do") (compound_statement "{\n                    ppppppiVar8 = ppppppiVar8 + 1;\n                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);\n                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;\n                  }" ({ "{") (expression_statement "ppppppiVar8 = ppppppiVar8 + 1;" (assignment_expression "ppppppiVar8 = ppppppiVar8 + 1" (identifier "ppppppiVar8") (= "=") (binary_expression "ppppppiVar8 + 1" (identifier "ppppppiVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);" (assignment_expression "ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1)" (identifier "ppppppiVar11") (= "=") (cast_expression "(int ******)((int)ppppppiVar11 + 1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppiVar11 + 1)" (( "(") (binary_expression "(int)ppppppiVar11 + 1" (cast_expression "(int)ppppppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;" (if "if") (parenthesized_expression "(ppppppiVar11 == pppppppiVar5[6])" (( "(") (binary_expression "ppppppiVar11 == pppppppiVar5[6]" (identifier "ppppppiVar11") (== "==") (subscript_expression "pppppppiVar5[6]" (identifier "pppppppiVar5") ([ "[") (number_literal "6") (] "]"))) () ")")) (goto_statement "goto LAB_00052530;" (goto "goto") (statement_identifier "LAB_00052530") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int ******)*ppppppiVar8 == ppppppiVar11)" (( "(") (binary_expression "(int ******)*ppppppiVar8 == ppppppiVar11" (cast_expression "(int ******)*ppppppiVar8" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*ppppppiVar8" (* "*") (identifier "ppppppiVar8"))) (== "==") (identifier "ppppppiVar11")) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x68f4)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x68f4" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")")))) (+ "+") (number_literal "0x68f4")) () ")")))) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar5;" (assignment_expression "pppppppiVar20 = pppppppiVar5" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar5")) (; ";")) (expression_statement "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" (identifier "FUN_00042ca0") (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" (( "(") (subscript_expression "pppppppiVar27[0xd]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xd") (] "]")) (, ",") (identifier "pppppppiVar29") () ")"))))) (; ";")) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 == (int *******)0x0" (identifier "pppppppiVar18") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);\n              pppppppiVar20 = pppppppiVar27;\n              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);\n              if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }\n            }" ({ "{") (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x23a54) + -0x6734)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x23a54) + -0x6734" (pointer_expression "*(int *)(pcVar6 + 0x23a54)" (* "*") (cast_expression "(int *)(pcVar6 + 0x23a54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x23a54)" (( "(") (binary_expression "pcVar6 + 0x23a54" (identifier "pcVar6") (+ "+") (number_literal "0x23a54")) () ")")))) (+ "+") (number_literal "-0x6734")) () ")")))) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar27")) (; ";")) (expression_statement "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29)" (identifier "FUN_00042ca0") (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" (( "(") (subscript_expression "pppppppiVar27[0xd]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xd") (] "]")) (, ",") (identifier "pppppppiVar29") () ")"))))) (; ";")) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" (if "if") (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 == (int *******)0x0" (identifier "pppppppiVar18") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);\n                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);\n                pppppppiVar20 = pppppppiVar27;\n                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);\n                if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }\n              }" ({ "{") (expression_statement "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);" (call_expression "FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27)" (identifier "FUN_000458f0") (argument_list "(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27)" (( "(") (subscript_expression "pppppppiVar27[0xd]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xd") (] "]")) (, ",") (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x55a0" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")")))) (+ "+") (number_literal "0x55a0")) (, ",") (identifier "pppppppiVar27") () ")"))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);" (assignment_expression "pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x239fc) + 0x4ecc)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x239fc) + 0x4ecc" (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")")))) (+ "+") (number_literal "0x4ecc")) () ")")))) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar27;" (assignment_expression "pppppppiVar20 = pppppppiVar27" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar27")) (; ";")) (expression_statement "pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29)" (identifier "FUN_000458f0") (argument_list "(pppppppiVar27[0xd],pppppppiVar29)" (( "(") (subscript_expression "pppppppiVar27[0xd]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xd") (] "]")) (, ",") (identifier "pppppppiVar29") () ")"))))) (; ";")) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" (if "if") (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 == (int *******)0x0" (identifier "pppppppiVar18") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  iVar7 = *(int *)(pcVar6 + 0x239fc);\n                  pppppppiVar22 = (int *******)0x0;\n                  pppppppiVar18 = (int *******)pppppppiVar27[2];\n                  bVar1 = false;\nLAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;\nLAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;\n                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;\nLAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n                  if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }\n                  goto LAB_000525f4;\n                }" ({ "{") (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")"))))) (; ";")) (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)pppppppiVar27[2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar27[2]" (identifier "pppppppiVar27") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_000525ec:\n                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;" (statement_identifier "LAB_000525ec") (: ":") (if_statement "if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;" (if "if") (parenthesized_expression "(pppppppiVar18 == pppppppiVar22)" (( "(") (binary_expression "pppppppiVar18 == pppppppiVar22" (identifier "pppppppiVar18") (== "==") (identifier "pppppppiVar22")) () ")")) (goto_statement "goto LAB_00052620;" (goto "goto") (statement_identifier "LAB_00052620") (; ";")))) (labeled_statement "LAB_000525f4:\n                  iVar23 = (int)pppppppiVar22 * 0xc;" (statement_identifier "LAB_000525f4") (: ":") (expression_statement "iVar23 = (int)pppppppiVar22 * 0xc;" (assignment_expression "iVar23 = (int)pppppppiVar22 * 0xc" (identifier "iVar23") (= "=") (binary_expression "(int)pppppppiVar22 * 0xc" (cast_expression "(int)pppppppiVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar22")) (* "*") (number_literal "0xc"))) (; ";"))) (if_statement "if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)\n                  goto LAB_00052650;" (if "if") (parenthesized_expression "(pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)" (( "(") (binary_expression "pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0" (subscript_expression "pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1]" (subscript_expression "pppppppiVar27[6]" (identifier "pppppppiVar27") ([ "[") (number_literal "6") (] "]")) ([ "[") (binary_expression "(int)pppppppiVar22 * 3 + 1" (binary_expression "(int)pppppppiVar22 * 3" (cast_expression "(int)pppppppiVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar22")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00052650;" (goto "goto") (statement_identifier "LAB_00052650") (; ";"))) (labeled_statement "LAB_00052614:\n                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (statement_identifier "LAB_00052614") (: ":") (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)((int)pppppppiVar22 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar22 + 1)" (( "(") (binary_expression "(int)pppppppiVar22 + 1" (cast_expression "(int)pppppppiVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar22")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (pppppppiVar18 == pppppppiVar22) {\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }" (if "if") (parenthesized_expression "(pppppppiVar18 == pppppppiVar22)" (( "(") (binary_expression "pppppppiVar18 == pppppppiVar22" (identifier "pppppppiVar18") (== "==") (identifier "pppppppiVar22")) () ")")) (compound_statement "{\nLAB_00052620:\n                    if (bVar1) goto LAB_00052628;\n                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;\n                    ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);\n                    pppppppiVar27[7] = ppppppiVar25;\n                    if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }\n                    pppppppiVar27 = (int *******)*pppppppiVar5;\n                    goto LAB_00052c64;\n                  }" ({ "{") (labeled_statement "LAB_00052620:\n                    if (bVar1) goto LAB_00052628;" (statement_identifier "LAB_00052620") (: ":") (if_statement "if (bVar1) goto LAB_00052628;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_00052628;" (goto "goto") (statement_identifier "LAB_00052628") (; ";")))) (if_statement "if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;" (if "if") (parenthesized_expression "((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0))" (( "(") (binary_expression "(((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&\n                       (pppppppiVar27[0x13] == (int ******)0x0)" (parenthesized_expression "(((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16)))" (( "(") (binary_expression "((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)) ||\n                        (-1 < *(char *)(pppppppiVar27 + 0x16))" (parenthesized_expression "((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0))" (( "(") (binary_expression "(((uint)pppppppiVar5[7] & 0x8000000) != 0) ||\n                         (pppppppiVar5[6] == (int ******)0x0)" (parenthesized_expression "(((uint)pppppppiVar5[7] & 0x8000000) != 0)" (( "(") (binary_expression "((uint)pppppppiVar5[7] & 0x8000000) != 0" (parenthesized_expression "((uint)pppppppiVar5[7] & 0x8000000)" (( "(") (binary_expression "(uint)pppppppiVar5[7] & 0x8000000" (cast_expression "(uint)pppppppiVar5[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar5[7]" (identifier "pppppppiVar5") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar5[6] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar5[6] == (int ******)0x0" (subscript_expression "pppppppiVar5[6]" (identifier "pppppppiVar5") ([ "[") (number_literal "6") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(-1 < *(char *)(pppppppiVar27 + 0x16))" (( "(") (binary_expression "-1 < *(char *)(pppppppiVar27 + 0x16)" (number_literal "-1") (< "<") (pointer_expression "*(char *)(pppppppiVar27 + 0x16)" (* "*") (cast_expression "(char *)(pppppppiVar27 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar27 + 0x16)" (( "(") (binary_expression "pppppppiVar27 + 0x16" (identifier "pppppppiVar27") (+ "+") (number_literal "0x16")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar27[0x13] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar27[0x13] == (int ******)0x0" (subscript_expression "pppppppiVar27[0x13]" (identifier "pppppppiVar27") ([ "[") (number_literal "0x13") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_00052998;" (goto "goto") (statement_identifier "LAB_00052998") (; ";"))) (expression_statement "ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);" (assignment_expression "ppppppiVar25 = (int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)\n                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c08))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23c08)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23c08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c08)" (( "(") (binary_expression "pcVar6 + 0x23c08" (identifier "pcVar6") (+ "+") (number_literal "0x23c08")) () ")"))))) () ")")) (argument_list "((int)pppppppiVar22 * 0xc)" (( "(") (binary_expression "(int)pppppppiVar22 * 0xc" (cast_expression "(int)pppppppiVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar22")) (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pppppppiVar27[7] = ppppppiVar25;" (assignment_expression "pppppppiVar27[7] = ppppppiVar25" (subscript_expression "pppppppiVar27[7]" (identifier "pppppppiVar27") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" (if "if") (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 != (int ******)0x0" (identifier "ppppppiVar25") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      pppppppiVar18 = (int *******)0x0;\n                      if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }\nLAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;\n                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }\n                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];\n                      pppppppiVar24[0x12] = ppppppiVar25;\n                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);\n                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);\n                      pppppppiVar27 = pppppppiVar29;\n                      apppppppiStack_174[0] = pppppppiVar29;\n                      if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }\nLAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;\n                      pppppiVar17 = ppppppiVar25[0xe];\n                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      pppppppiStack_178 = pppppppiVar27;\n                      if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }\n                      ppppppiVar25[0x10] = (int *****)0x1f;\n                      ppppppiVar25[0xe] = (int *****)0x0;\n                      ppppppiVar25[0xd] = (int *****)0x0;\n                      (*pcVar32)(ppppppiVar25[4]);\n                      ppppppiVar25[4] = (int *****)0x0;\n                      FUN_00044d40(&pppppppiStack_160);\n                      pppppppiVar27 = pppppppiStack_178;\n                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;\n                      goto LAB_000526ec;\n                    }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppiVar22 != (int *******)0x0) {\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" (if "if") (parenthesized_expression "(pppppppiVar22 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar22 != (int *******)0x0" (identifier "pppppppiVar22") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        iVar7 = 0;\n                        while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }\n                        iVar7 = *(int *)(pcVar6 + 0x239fc);\n                        pppppppiVar20 = (int *******)0x0;\n                        if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }\n                      }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);\n                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);\n                          *puVar12 = 0;\n                          puVar12[1] = 0;\n                          puVar12[2] = 0;\n                          puVar12[3] = 0;\n                          puVar12[4] = 0;\n                          puVar12[5] = 0;\n                          puVar12[6] = 0;\n                          puVar12[7] = 0;\n                          puVar12[8] = 0;\n                          puVar12[9] = 0;\n                          puVar12[10] = 0;\n                          puVar12[0xb] = 0;\n                          pppppppiVar29 = (int *******)pppppppiVar27[2];\n                          iVar7 = iVar7 + 0xc;\n                          if (pppppppiVar29 <= pppppppiVar18) break;\n                          ppppppiVar25 = pppppppiVar27[7];\n                        }" ({ "{") (expression_statement "puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);" (assignment_expression "puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)((int)ppppppiVar25 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar25 + iVar7)" (( "(") (binary_expression "(int)ppppppiVar25 + iVar7" (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);" (assignment_expression "pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)((int)pppppppiVar18 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar18 + 1)" (( "(") (binary_expression "(int)pppppppiVar18 + 1" (cast_expression "(int)pppppppiVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar18")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[1] = 0;" (assignment_expression "puVar12[1] = 0" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[2] = 0;" (assignment_expression "puVar12[2] = 0" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[3] = 0;" (assignment_expression "puVar12[3] = 0" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[4] = 0;" (assignment_expression "puVar12[4] = 0" (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[5] = 0;" (assignment_expression "puVar12[5] = 0" (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[6] = 0;" (assignment_expression "puVar12[6] = 0" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[7] = 0;" (assignment_expression "puVar12[7] = 0" (subscript_expression "puVar12[7]" (identifier "puVar12") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[8] = 0;" (assignment_expression "puVar12[8] = 0" (subscript_expression "puVar12[8]" (identifier "puVar12") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[9] = 0;" (assignment_expression "puVar12[9] = 0" (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[10] = 0;" (assignment_expression "puVar12[10] = 0" (subscript_expression "puVar12[10]" (identifier "puVar12") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12[0xb] = 0;" (assignment_expression "puVar12[0xb] = 0" (subscript_expression "puVar12[0xb]" (identifier "puVar12") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[2]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar27[2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar27[2]" (identifier "pppppppiVar27") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar7 = iVar7 + 0xc;" (assignment_expression "iVar7 = iVar7 + 0xc" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (pppppppiVar29 <= pppppppiVar18) break;" (if "if") (parenthesized_expression "(pppppppiVar29 <= pppppppiVar18)" (( "(") (binary_expression "pppppppiVar29 <= pppppppiVar18" (identifier "pppppppiVar29") (<= "<=") (identifier "pppppppiVar18")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppppppiVar25 = pppppppiVar27[7];" (assignment_expression "ppppppiVar25 = pppppppiVar27[7]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar27[7]" (identifier "pppppppiVar27") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar7 = *(int *)(pcVar6 + 0x239fc);" (assignment_expression "iVar7 = *(int *)(pcVar6 + 0x239fc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar6 + 0x239fc)" (* "*") (cast_expression "(int *)(pcVar6 + 0x239fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x239fc)" (( "(") (binary_expression "pcVar6 + 0x239fc" (identifier "pcVar6") (+ "+") (number_literal "0x239fc")) () ")"))))) (; ";")) (expression_statement "pppppppiVar20 = (int *******)0x0;" (assignment_expression "pppppppiVar20 = (int *******)0x0" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppiVar29 != (int *******)0x0) {\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }" (if "if") (parenthesized_expression "(pppppppiVar29 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar29 != (int *******)0x0" (identifier "pppppppiVar29") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          ppppppiVar25 = pppppppiVar27[6];\n                          pppppppiStack_188 = (int *******)0x0;\n                          iStack_190 = 0;\n                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }\n                          iVar23 = 0;\n                          pppppppiVar18 = pppppppiVar20;\n                          while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }\n                          pppppppiVar18 = (int *******)0xc;\n                          goto LAB_000521d4;\n                        }" ({ "{") (expression_statement "ppppppiVar25 = pppppppiVar27[6];" (assignment_expression "ppppppiVar25 = pppppppiVar27[6]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar27[6]" (identifier "pppppppiVar27") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "pppppppiStack_188 = (int *******)0x0;" (assignment_expression "pppppppiStack_188 = (int *******)0x0" (identifier "pppppppiStack_188") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iStack_190 = 0;" (assignment_expression "iStack_190 = 0" (identifier "iStack_190") (= "=") (number_literal "0")) (; ";")) (while_statement "while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }" (while "while") (parenthesized_expression "(pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1)" (( "(") (comma_expression "pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)\n                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1" (assignment_expression "pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)" (identifier "pppppppiVar20") (= "=") (pointer_expression "*(int ********)((int)ppppppiVar25 + iStack_190 + 8)" (* "*") (cast_expression "(int ********)((int)ppppppiVar25 + iStack_190 + 8)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 8)" (( "(") (binary_expression "(int)ppppppiVar25 + iStack_190 + 8" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25")) (+ "+") (identifier "iStack_190")) (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1" (pointer_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4)" (* "*") (cast_expression "(int *)((int)ppppppiVar25 + iStack_190 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 4)" (( "(") (binary_expression "(int)ppppppiVar25 + iStack_190 + 4" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25")) (+ "+") (identifier "iStack_190")) (+ "+") (number_literal "4")) () ")")))) (< "<") (number_literal "1"))) () ")")) (compound_statement "{\nLAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);\n                            iStack_190 = iStack_190 + 0xc;\n                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;\n                          }" ({ "{") (labeled_statement "LAB_00052974:\n                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);" (statement_identifier "LAB_00052974") (: ":") (expression_statement "pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);" (assignment_expression "pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1)" (identifier "pppppppiStack_188") (= "=") (cast_expression "(int *******)((int)pppppppiStack_188 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiStack_188 + 1)" (( "(") (binary_expression "(int)pppppppiStack_188 + 1" (cast_expression "(int)pppppppiStack_188" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_188")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "iStack_190 = iStack_190 + 0xc;" (assignment_expression "iStack_190 = iStack_190 + 0xc" (identifier "iStack_190") (= "=") (binary_expression "iStack_190 + 0xc" (identifier "iStack_190") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;" (if "if") (parenthesized_expression "(pppppppiVar29 <= pppppppiStack_188)" (( "(") (binary_expression "pppppppiVar29 <= pppppppiStack_188" (identifier "pppppppiVar29") (<= "<=") (identifier "pppppppiStack_188")) () ")")) (goto_statement "goto LAB_00052998;" (goto "goto") (statement_identifier "LAB_00052998") (; ";"))) (} "}"))) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar20;" (assignment_expression "pppppppiVar18 = pppppppiVar20" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar20")) (; ";")) (while_statement "while (pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0) {\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }" (while "while") (parenthesized_expression "(pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0)" (( "(") (comma_expression "pppppppiVar29 = pppppppiStack_188,\n                                iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0" (assignment_expression "pppppppiVar29 = pppppppiStack_188" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiStack_188")) (, ",") (comma_expression "iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188), iVar13 != 0" (assignment_expression "iVar13 = (*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" (identifier "iVar13") (= "=") (call_expression "(*(code *)(iVar7 + 0x3360))\n                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" (parenthesized_expression "(*(code *)(iVar7 + 0x3360))" (( "(") (pointer_expression "*(code *)(iVar7 + 0x3360)" (* "*") (cast_expression "(code *)(iVar7 + 0x3360)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3360)" (( "(") (binary_expression "iVar7 + 0x3360" (identifier "iVar7") (+ "+") (number_literal "0x3360")) () ")")))) () ")")) (argument_list "(pppppppiVar27[7] + (int)*pppppppiVar18 * 3,\n                                                    pppppppiStack_188)" (( "(") (binary_expression "pppppppiVar27[7] + (int)*pppppppiVar18 * 3" (subscript_expression "pppppppiVar27[7]" (identifier "pppppppiVar27") ([ "[") (number_literal "7") (] "]")) (+ "+") (binary_expression "(int)*pppppppiVar18 * 3" (cast_expression "(int)*pppppppiVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppiVar18" (* "*") (identifier "pppppppiVar18"))) (* "*") (number_literal "3"))) (, ",") (identifier "pppppppiStack_188") () ")")))) (, ",") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")))) () ")")) (compound_statement "{\n                            ppppppiVar25 = pppppppiVar27[6];\n                            iVar23 = iVar23 + 1;\n                            pppppppiVar18 = pppppppiVar18 + 1;\n                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }\n                          }" ({ "{") (expression_statement "ppppppiVar25 = pppppppiVar27[6];" (assignment_expression "ppppppiVar25 = pppppppiVar27[6]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar27[6]" (identifier "pppppppiVar27") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar18 + 1;" (assignment_expression "pppppppiVar18 = pppppppiVar18 + 1" (identifier "pppppppiVar18") (= "=") (binary_expression "pppppppiVar18 + 1" (identifier "pppppppiVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }" (if "if") (parenthesized_expression "(*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23)" (( "(") (binary_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23" (pointer_expression "*(int *)((int)ppppppiVar25 + iStack_190 + 4)" (* "*") (cast_expression "(int *)((int)ppppppiVar25 + iStack_190 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar25 + iStack_190 + 4)" (( "(") (binary_expression "(int)ppppppiVar25 + iStack_190 + 4" (binary_expression "(int)ppppppiVar25 + iStack_190" (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25")) (+ "+") (identifier "iStack_190")) (+ "+") (number_literal "4")) () ")")))) (<= "<=") (identifier "iVar23")) () ")")) (compound_statement "{\n                              pppppppiVar29 = (int *******)pppppppiVar27[2];\n                              goto LAB_00052974;\n                            }" ({ "{") (expression_statement "pppppppiVar29 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar29 = (int *******)pppppppiVar27[2]" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)pppppppiVar27[2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar27[2]" (identifier "pppppppiVar27") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto LAB_00052974;" (goto "goto") (statement_identifier "LAB_00052974") (; ";")) (} "}"))) (} "}"))) (expression_statement "pppppppiVar18 = (int *******)0xc;" (assignment_expression "pppppppiVar18 = (int *******)0xc" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0xc" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (goto_statement "goto LAB_000521d4;" (goto "goto") (statement_identifier "LAB_000521d4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00052998:\n                      pppppppiStack_178 = (int *******)0x0;" (statement_identifier "LAB_00052998") (: ":") (expression_statement "pppppppiStack_178 = (int *******)0x0;" (assignment_expression "pppppppiStack_178 = (int *******)0x0" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)) {\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }" (if "if") (parenthesized_expression "(((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0))" (( "(") (binary_expression "((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&\n                         (pppppppiVar5[5] == (int ******)0x0)" (parenthesized_expression "((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0))" (( "(") (binary_expression "(((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)" (parenthesized_expression "(((uint)pppppppiVar24[0x16] & 0x20000000) != 0)" (( "(") (binary_expression "((uint)pppppppiVar24[0x16] & 0x20000000) != 0" (parenthesized_expression "((uint)pppppppiVar24[0x16] & 0x20000000)" (( "(") (binary_expression "(uint)pppppppiVar24[0x16] & 0x20000000" (cast_expression "(uint)pppppppiVar24[0x16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar24[0x16]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x16") (] "]"))) (& "&") (number_literal "0x20000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar5[5] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar5[5] == (int ******)0x0" (subscript_expression "pppppppiVar5[5]" (identifier "pppppppiVar5") ([ "[") (number_literal "5") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                        pppppppiVar20 = (int *******)pppppppiVar24[2];\n                        if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }\n                        pppppppiVar24[0x17] = (int ******)0x1;\n                        *(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;\n                      }" ({ "{") (expression_statement "pppppppiVar20 = (int *******)pppppppiVar24[2];" (assignment_expression "pppppppiVar20 = (int *******)pppppppiVar24[2]" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)pppppppiVar24[2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar24[2]" (identifier "pppppppiVar24") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (pppppppiVar20 != (int *******)0x0) {\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" (if "if") (parenthesized_expression "(pppppppiVar20 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar20 != (int *******)0x0" (identifier "pppppppiVar20") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);\n                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);\n                          if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }\n                          goto switchD_00052dc0_caseD_0;\n                        }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);" (assignment_expression "pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 0x23694) + 0x2fcc)" (( "(") (binary_expression "*(int *)(pcVar6 + 0x23694) + 0x2fcc" (pointer_expression "*(int *)(pcVar6 + 0x23694)" (* "*") (cast_expression "(int *)(pcVar6 + 0x23694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x23694)" (( "(") (binary_expression "pcVar6 + 0x23694" (identifier "pcVar6") (+ "+") (number_literal "0x23694")) () ")")))) (+ "+") (number_literal "0x2fcc")) () ")")))) (; ";")) (expression_statement "uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);" (assignment_expression "uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd)" (identifier "uVar28") (= "=") (call_expression "(uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(byte *)(*pppppppiVar24 + 1) < 0xd)" (( "(") (binary_expression "*(byte *)(*pppppppiVar24 + 1) < 0xd" (pointer_expression "*(byte *)(*pppppppiVar24 + 1)" (* "*") (cast_expression "(byte *)(*pppppppiVar24 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pppppppiVar24 + 1)" (( "(") (binary_expression "*pppppppiVar24 + 1" (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")) (+ "+") (number_literal "1")) () ")")))) (< "<") (number_literal "0xd")) () ")")))) (; ";")) (if_statement "if (uVar28 != 0) {\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }" (if "if") (parenthesized_expression "(uVar28 != 0)" (( "(") (binary_expression "uVar28 != 0" (identifier "uVar28") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n                            pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();\n                            return pppppppiVar27;\n                          }" ({ "{") (expression_statement "pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))();" (assignment_expression "pppppppiVar27 =\n                                 (int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)\n                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))()" (parenthesized_expression "(*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)))" (( "(") (pointer_expression "*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97))" (* "*") (parenthesized_expression "(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97))" (( "(") (binary_expression "pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" (identifier "pcVar6") (+ "+") (cast_expression "(int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97)" (( "(") (binary_expression "pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +\n                                                  0xad97" (subscript_expression "pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)]" (identifier "pppppppiVar18") ([ "[") (pointer_expression "*(byte *)(*pppppppiVar24 + 1)" (* "*") (cast_expression "(byte *)(*pppppppiVar24 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pppppppiVar24 + 1)" (( "(") (binary_expression "*pppppppiVar24 + 1" (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")) (+ "+") (number_literal "1")) () ")")))) (] "]")) (+ "+") (number_literal "0xad97")) () ")")))) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pppppppiVar27;" (return "return") (identifier "pppppppiVar27") (; ";")) (} "}"))) (goto_statement "goto switchD_00052dc0_caseD_0;" (goto "goto") (statement_identifier "switchD_00052dc0_caseD_0") (; ";")) (} "}"))) (expression_statement "pppppppiVar24[0x17] = (int ******)0x1;" (assignment_expression "pppppppiVar24[0x17] = (int ******)0x1" (subscript_expression "pppppppiVar24[0x17]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x17") (] "]")) (= "=") (cast_expression "(int ******)0x1" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "*(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6;" (assignment_expression "*(byte *)(pppppppiVar24 + 0x16) =\n                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0x9f |\n                             (0 < (int)pppppppiVar24[0x13]) << 6" (binary_expression "*(byte *)(pppppppiVar24 + 0x16) & 0x9f" (pointer_expression "*(byte *)(pppppppiVar24 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppiVar24 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar24 + 0x16)" (( "(") (binary_expression "pppppppiVar24 + 0x16" (identifier "pppppppiVar24") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0x9f")) (| "|") (binary_expression "(0 < (int)pppppppiVar24[0x13]) << 6" (parenthesized_expression "(0 < (int)pppppppiVar24[0x13])" (( "(") (binary_expression "0 < (int)pppppppiVar24[0x13]" (number_literal "0") (< "<") (cast_expression "(int)pppppppiVar24[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0x13]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x13") (] "]")))) () ")")) (<< "<<") (number_literal "6")))) (; ";")) (} "}"))) (expression_statement "ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];" (assignment_expression "ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7]" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)pppppppiVar24[0xd][3][7]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "pppppppiVar24[0xd][3][7]" (subscript_expression "pppppppiVar24[0xd][3]" (subscript_expression "pppppppiVar24[0xd]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xd") (] "]")) ([ "[") (number_literal "3") (] "]")) ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pppppppiVar24[0x12] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0x12] = ppppppiVar25" (subscript_expression "pppppppiVar24[0x12]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);" (assignment_expression "pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppiVar24[6] + (int)ppppppiVar25 * 3)" (( "(") (binary_expression "pppppppiVar24[6] + (int)ppppppiVar25 * 3" (subscript_expression "pppppppiVar24[6]" (identifier "pppppppiVar24") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)ppppppiVar25 * 3" (cast_expression "(int)ppppppiVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar25")) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);" (assignment_expression "pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18)" (identifier "pppppppiVar29") (= "=") (cast_expression "(int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000469e0(pppppppiVar19,pppppppiVar18)" (identifier "FUN_000469e0") (argument_list "(pppppppiVar19,pppppppiVar18)" (( "(") (identifier "pppppppiVar19") (, ",") (identifier "pppppppiVar18") () ")"))))) (; ";")) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar29")) (; ";")) (expression_statement "apppppppiStack_174[0] = pppppppiVar29;" (assignment_expression "apppppppiStack_174[0] = pppppppiVar29" (subscript_expression "apppppppiStack_174[0]" (identifier "apppppppiStack_174") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pppppppiVar29")) (; ";")) (if_statement "if (pppppppiVar29 == (int *******)0x0) {\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }" (if "if") (parenthesized_expression "(pppppppiVar29 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar29 == (int *******)0x0" (identifier "pppppppiVar29") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }\n                        pppppppiVar18 = pppppppiVar24;\n                        pppppppiVar20 = pppppppiVar19;\n                        ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );\n                        pppppppiVar24[9] = ppppppiVar25;\n                        pppppppiVar27 = apppppppiStack_174[0];\n                        if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }\n                      }" ({ "{") (if_statement "if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }" (if "if") (parenthesized_expression "((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168))" (( "(") (binary_expression "(0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)" (parenthesized_expression "(0 < (int)pppppppiVar24[0x13])" (( "(") (binary_expression "0 < (int)pppppppiVar24[0x13]" (number_literal "0") (< "<") (cast_expression "(int)pppppppiVar24[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar24[0x13]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x13") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(0 < iStack_168)" (( "(") (binary_expression "0 < iStack_168" (number_literal "0") (< "<") (identifier "iStack_168")) () ")"))) () ")")) (compound_statement "{\n                          iVar23 = 0;\n                          iVar7 = iStack_168;\n                          do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);\n                        }" ({ "{") (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = iStack_168;" (assignment_expression "iVar7 = iStack_168" (identifier "iVar7") (= "=") (identifier "iStack_168")) (; ";")) (do_statement "do {\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          } while (iVar23 < iVar7);" (do "do") (compound_statement "{\n                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;\n                            iVar13 = 0;\n                            piVar14 = piStack_164;\n                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }\n                          }" ({ "{") (expression_statement "ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;" (assignment_expression "ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2" (identifier "ppppppiVar25") (= "=") (binary_expression "*pppppppiVar24 + piStack_164[iVar23] * 2" (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")) (+ "+") (binary_expression "piStack_164[iVar23] * 2" (subscript_expression "piStack_164[iVar23]" (identifier "piStack_164") ([ "[") (identifier "iVar23") (] "]")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar14 = piStack_164;" (assignment_expression "piVar14 = piStack_164" (identifier "piVar14") (= "=") (identifier "piStack_164")) (; ";")) (if_statement "if (*(char *)(ppppppiVar25 + 1) == '\x04') {\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }\n                            else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" (if "if") (parenthesized_expression "(*(char *)(ppppppiVar25 + 1) == '\x04')" (( "(") (binary_expression "*(char *)(ppppppiVar25 + 1) == '\x04'" (pointer_expression "*(char *)(ppppppiVar25 + 1)" (* "*") (cast_expression "(char *)(ppppppiVar25 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar25 + 1)" (( "(") (binary_expression "ppppppiVar25 + 1" (identifier "ppppppiVar25") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }\n                              pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];\n                              pppppppiVar27 = pppppppiVar20;\n                              iVar13 = FUN_00045230(iVar7,&piStack_164);\n                              if (iVar13 != 0) goto LAB_00052a54;\n                              pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);\n                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;\n                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;\n                              iVar23 = 1;\n                              iVar7 = iStack_168;\n                            }" ({ "{") (while_statement "while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))) {\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }" (while "while") (parenthesized_expression "((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)))" (( "(") (parenthesized_expression "(ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25))" (( "(") (comma_expression "ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,\n                                     *(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)" (assignment_expression "ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2" (identifier "ppppppiVar8") (= "=") (binary_expression "*pppppppiVar24 + *piVar14 * 2" (pointer_expression "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")) (+ "+") (binary_expression "*piVar14 * 2" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (* "*") (number_literal "2")))) (, ",") (binary_expression "*(char *)(ppppppiVar8 + 1) != '\t' ||\n                                     (*ppppppiVar8 != *ppppppiVar25)" (binary_expression "*(char *)(ppppppiVar8 + 1) != '\t'" (pointer_expression "*(char *)(ppppppiVar8 + 1)" (* "*") (cast_expression "(char *)(ppppppiVar8 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar8 + 1)" (( "(") (binary_expression "ppppppiVar8 + 1" (identifier "ppppppiVar8") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) (|| "||") (parenthesized_expression "(*ppppppiVar8 != *ppppppiVar25)" (( "(") (binary_expression "*ppppppiVar8 != *ppppppiVar25" (pointer_expression "*ppppppiVar8" (* "*") (identifier "ppppppiVar8")) (!= "!=") (pointer_expression "*ppppppiVar25" (* "*") (identifier "ppppppiVar25"))) () ")")))) () ")")) () ")")) (compound_statement "{\n                                iVar13 = iVar13 + 1;\n                                piVar14 = piVar14 + 1;\n                                if (iVar7 == iVar13) goto LAB_00052a54;\n                              }" ({ "{") (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 == iVar13) goto LAB_00052a54;" (if "if") (parenthesized_expression "(iVar7 == iVar13)" (( "(") (binary_expression "iVar7 == iVar13" (identifier "iVar7") (== "==") (identifier "iVar13")) () ")")) (goto_statement "goto LAB_00052a54;" (goto "goto") (statement_identifier "LAB_00052a54") (; ";"))) (} "}"))) (expression_statement "pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];" (assignment_expression "pppppppiVar20 =\n                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" (identifier "pppppppiVar20") (= "=") (cast_expression "(int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" (* "*") (subscript_expression "pppppppiVar24[5][piStack_164[iVar23] * 3 + 2]" (subscript_expression "pppppppiVar24[5]" (identifier "pppppppiVar24") ([ "[") (number_literal "5") (] "]")) ([ "[") (binary_expression "piStack_164[iVar23] * 3 + 2" (binary_expression "piStack_164[iVar23] * 3" (subscript_expression "piStack_164[iVar23]" (identifier "piStack_164") ([ "[") (identifier "iVar23") (] "]")) (* "*") (number_literal "3")) (+ "+") (number_literal "2")) (] "]"))))) (; ";")) (expression_statement "pppppppiVar27 = pppppppiVar20;" (assignment_expression "pppppppiVar27 = pppppppiVar20" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar20")) (; ";")) (expression_statement "iVar13 = FUN_00045230(iVar7,&piStack_164);" (assignment_expression "iVar13 = FUN_00045230(iVar7,&piStack_164)" (identifier "iVar13") (= "=") (call_expression "FUN_00045230(iVar7,&piStack_164)" (identifier "FUN_00045230") (argument_list "(iVar7,&piStack_164)" (( "(") (identifier "iVar7") (, ",") (pointer_expression "&piStack_164" (& "&") (identifier "piStack_164")) () ")")))) (; ";")) (if_statement "if (iVar13 != 0) goto LAB_00052a54;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00052a54;" (goto "goto") (statement_identifier "LAB_00052a54") (; ";"))) (expression_statement "pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);" (assignment_expression "pppppppiVar18 =\n                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppiVar24[6] + (int)pppppppiVar27 * 3)" (( "(") (binary_expression "pppppppiVar24[6] + (int)pppppppiVar27 * 3" (subscript_expression "pppppppiVar24[6]" (identifier "pppppppiVar24") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)pppppppiVar27 * 3" (cast_expression "(int)pppppppiVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar27")) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)\n                              ;" (assignment_expression "pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000459ac(pppppppiVar19,pppppppiVar18)" (identifier "FUN_000459ac") (argument_list "(pppppppiVar19,pppppppiVar18)" (( "(") (identifier "pppppppiVar19") (, ",") (identifier "pppppppiVar18") () ")"))))) (; ";")) (if_statement "if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;" (if "if") (parenthesized_expression "(pppppppiVar27 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar27 != (int *******)0x0" (identifier "pppppppiVar27") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00052abc;" (goto "goto") (statement_identifier "LAB_00052abc") (; ";"))) (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" (identifier "iVar23") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = iStack_168;" (assignment_expression "iVar7 = iStack_168" (identifier "iVar7") (= "=") (identifier "iStack_168")) (; ";")) (} "}")) (else_clause "else {\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" (else "else") (compound_statement "{\nLAB_00052a54:\n                              iVar23 = iVar23 + 1;\n                            }" ({ "{") (labeled_statement "LAB_00052a54:\n                              iVar23 = iVar23 + 1;" (statement_identifier "LAB_00052a54") (: ":") (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (} "}")) (while "while") (parenthesized_expression "(iVar23 < iVar7)" (( "(") (binary_expression "iVar23 < iVar7" (identifier "iVar23") (< "<") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppiVar18 = pppppppiVar24;" (assignment_expression "pppppppiVar18 = pppppppiVar24" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   );" (assignment_expression "ppppppiVar25 = (int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)\n                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" (identifier "FUN_00046cac") (argument_list "(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0\n                                                   )" (( "(") (identifier "apppppppiStack_174") (, ",") (identifier "pppppppiVar24") (, ",") (identifier "pppppppiVar19") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "pppppppiVar24[9] = ppppppiVar25;" (assignment_expression "pppppppiVar24[9] = ppppppiVar25" (subscript_expression "pppppppiVar24[9]" (identifier "pppppppiVar24") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar27 = apppppppiStack_174[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_174[0]" (identifier "pppppppiVar27") (= "=") (subscript_expression "apppppppiStack_174[0]" (identifier "apppppppiStack_174") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }" (if "if") (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 != (int ******)0x0" (identifier "ppppppiVar25") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }\n                          (*pcVar32)(piStack_164);\n                          pppppppiVar20 = pppppppiVar19;\n                          pppppppiVar27 = pppppppiVar29;\n                        }" ({ "{") (if_statement "if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }\n                          else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" (if "if") (parenthesized_expression "(((uint)ppppppiVar25[0xd] & 0x1000000) == 0)" (( "(") (binary_expression "((uint)ppppppiVar25[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)ppppppiVar25[0xd] & 0x1000000)" (( "(") (binary_expression "(uint)ppppppiVar25[0xd] & 0x1000000" (cast_expression "(uint)ppppppiVar25[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar25[0xd]" (identifier "ppppppiVar25") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar24[10] = ppppppiVar25;\n                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                            pppppppiVar19 = pppppppiVar20;\n                          }" ({ "{") (expression_statement "pppppppiVar24[0xc] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xc] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xc]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar24[0xb] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xb] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xb]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar24[10] = ppppppiVar25;" (assignment_expression "pppppppiVar24[10] = ppppppiVar25" (subscript_expression "pppppppiVar24[10]" (identifier "pppppppiVar24") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) (; ";")) (expression_statement "pppppppiVar19 = pppppppiVar20;" (assignment_expression "pppppppiVar19 = pppppppiVar20" (identifier "pppppppiVar19") (= "=") (identifier "pppppppiVar20")) (; ";")) (} "}")) (else_clause "else {\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" (else "else") (compound_statement "{\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);\n                            pppppppiVar24[10] = ppppppiVar25;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);\n                            pppppppiVar24[0xb] = ppppppiVar25;\n                            pppppppiVar18 = pppppppiVar24;\n                            ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);\n                            pppppppiVar24[0xc] = ppppppiVar25;\n                            pppppppiVar20 = pppppppiVar19;\n                            pppppppiVar27 = apppppppiStack_174[0];\n                            if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;\n                          }" ({ "{") (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" (identifier "FUN_00046cac") (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,1)" (( "(") (identifier "apppppppiStack_174") (, ",") (identifier "pppppppiVar24") (, ",") (identifier "pppppppiVar19") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "pppppppiVar24[10] = ppppppiVar25;" (assignment_expression "pppppppiVar24[10] = ppppppiVar25" (subscript_expression "pppppppiVar24[10]" (identifier "pppppppiVar24") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" (identifier "FUN_00046cac") (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,2)" (( "(") (identifier "apppppppiStack_174") (, ",") (identifier "pppppppiVar24") (, ",") (identifier "pppppppiVar19") (, ",") (number_literal "2") () ")"))))) (; ";")) (expression_statement "pppppppiVar24[0xb] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xb] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xb]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar24;" (assignment_expression "pppppppiVar18 = pppppppiVar24" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6);" (assignment_expression "ppppppiVar25 = (int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)\n                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_00046cac(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" (identifier "FUN_00046cac") (argument_list "(apppppppiStack_174,pppppppiVar24,\n                                                        pppppppiVar19,6)" (( "(") (identifier "apppppppiStack_174") (, ",") (identifier "pppppppiVar24") (, ",") (identifier "pppppppiVar19") (, ",") (number_literal "6") () ")"))))) (; ";")) (expression_statement "pppppppiVar24[0xc] = ppppppiVar25;" (assignment_expression "pppppppiVar24[0xc] = ppppppiVar25" (subscript_expression "pppppppiVar24[0xc]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppiVar25")) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiVar27 = apppppppiStack_174[0];" (assignment_expression "pppppppiVar27 = apppppppiStack_174[0]" (identifier "pppppppiVar27") (= "=") (subscript_expression "apppppppiStack_174[0]" (identifier "apppppppiStack_174") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;" (if "if") (parenthesized_expression "(((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0))" (( "(") (binary_expression "((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)) ||\n                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)" (parenthesized_expression "((pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0))" (( "(") (binary_expression "(pppppppiVar24[10] == (int ******)0x0) ||\n                                (pppppppiVar24[0xb] == (int ******)0x0)" (parenthesized_expression "(pppppppiVar24[10] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar24[10] == (int ******)0x0" (subscript_expression "pppppppiVar24[10]" (identifier "pppppppiVar24") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pppppppiVar24[0xb] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar24[0xb] == (int ******)0x0" (subscript_expression "pppppppiVar24[0xb]" (identifier "pppppppiVar24") ([ "[") (number_literal "0xb") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0)" (( "(") (comma_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8),\n                               ppppppiVar25 == (int ******)0x0" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) (, ",") (binary_expression "ppppppiVar25 == (int ******)0x0" (identifier "ppppppiVar25") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00052abc;" (goto "goto") (statement_identifier "LAB_00052abc") (; ";"))) (} "}")))) (expression_statement "(*pcVar32)(piStack_164);" (call_expression "(*pcVar32)(piStack_164)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(piStack_164)" (( "(") (identifier "piStack_164") () ")"))) (; ";")) (expression_statement "pppppppiVar20 = pppppppiVar19;" (assignment_expression "pppppppiVar20 = pppppppiVar19" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar19")) (; ";")) (expression_statement "pppppppiVar27 = pppppppiVar29;" (assignment_expression "pppppppiVar27 = pppppppiVar29" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiVar29")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00052abc:\n                      ppppppiVar25 = *pppppppiVar5;" (statement_identifier "LAB_00052abc") (: ":") (expression_statement "ppppppiVar25 = *pppppppiVar5;" (assignment_expression "ppppppiVar25 = *pppppppiVar5" (identifier "ppppppiVar25") (= "=") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5"))) (; ";"))) (expression_statement "pppppiVar17 = ppppppiVar25[0xe];" (assignment_expression "pppppiVar17 = ppppppiVar25[0xe]" (identifier "pppppiVar17") (= "=") (subscript_expression "ppppppiVar25[0xe]" (identifier "ppppppiVar25") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) (; ";")) (expression_statement "pppppppiStack_178 = pppppppiVar27;" (assignment_expression "pppppppiStack_178 = pppppppiVar27" (identifier "pppppppiStack_178") (= "=") (identifier "pppppppiVar27")) (; ";")) (if_statement "if (pppppiVar17 != (int *****)0x0) {\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }" (if "if") (parenthesized_expression "(pppppiVar17 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar17 != (int *****)0x0" (identifier "pppppiVar17") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);\n                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n                      }" ({ "{") (do_statement "do {\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        } while (pppppiVar17 != (int *****)0x0);" (do "do") (compound_statement "{\n                          pppppiVar17 = (int *****)*pppppiVar17;\n                          (**(code **)(pcVar6 + 0x23cd8))();\n                        }" ({ "{") (expression_statement "pppppiVar17 = (int *****)*pppppiVar17;" (assignment_expression "pppppiVar17 = (int *****)*pppppiVar17" (identifier "pppppiVar17") (= "=") (cast_expression "(int *****)*pppppiVar17" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*pppppiVar17" (* "*") (identifier "pppppiVar17")))) (; ";")) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppiVar17 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar17 != (int *****)0x0" (identifier "pppppiVar17") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "ppppppiVar25[0x10] = (int *****)0x1f;" (assignment_expression "ppppppiVar25[0x10] = (int *****)0x1f" (subscript_expression "ppppppiVar25[0x10]" (identifier "ppppppiVar25") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(int *****)0x1f" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x1f"))) (; ";")) (expression_statement "ppppppiVar25[0xe] = (int *****)0x0;" (assignment_expression "ppppppiVar25[0xe] = (int *****)0x0" (subscript_expression "ppppppiVar25[0xe]" (identifier "ppppppiVar25") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar25[0xd] = (int *****)0x0;" (assignment_expression "ppppppiVar25[0xd] = (int *****)0x0" (subscript_expression "ppppppiVar25[0xd]" (identifier "ppppppiVar25") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*pcVar32)(ppppppiVar25[4]);" (call_expression "(*pcVar32)(ppppppiVar25[4])" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(ppppppiVar25[4])" (( "(") (subscript_expression "ppppppiVar25[4]" (identifier "ppppppiVar25") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "ppppppiVar25[4] = (int *****)0x0;" (assignment_expression "ppppppiVar25[4] = (int *****)0x0" (subscript_expression "ppppppiVar25[4]" (identifier "ppppppiVar25") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_00044d40(&pppppppiStack_160);" (call_expression "FUN_00044d40(&pppppppiStack_160)" (identifier "FUN_00044d40") (argument_list "(&pppppppiStack_160)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) () ")"))) (; ";")) (expression_statement "pppppppiVar27 = pppppppiStack_178;" (assignment_expression "pppppppiVar27 = pppppppiStack_178" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiStack_178")) (; ";")) (if_statement "if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;" (if "if") (parenthesized_expression "(pppppppiStack_178 != (int *******)0x0)" (( "(") (binary_expression "pppppppiStack_178 != (int *******)0x0" (identifier "pppppppiStack_178") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto joined_r0x00052b2c;" (goto "goto") (statement_identifier "joined_r0x00052b2c") (; ";"))) (goto_statement "goto LAB_000526ec;" (goto "goto") (statement_identifier "LAB_000526ec") (; ";")) (} "}"))) (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)*pppppppiVar5" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")))) (; ";")) (goto_statement "goto LAB_00052c64;" (goto "goto") (statement_identifier "LAB_00052c64") (; ";")) (} "}"))) (goto_statement "goto LAB_000525f4;" (goto "goto") (statement_identifier "LAB_000525f4") (; ";")) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_000521d4;" (goto "goto") (statement_identifier "LAB_000521d4") (; ";")) (} "}"))) (labeled_statement "LAB_00052c64:\n          pppppppiStack_178 = (int *******)0xc;" (statement_identifier "LAB_00052c64") (: ":") (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0xc" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";"))) (} "}")))) (goto_statement "goto LAB_000521dc;" (goto "goto") (statement_identifier "LAB_000521dc") (; ";")) (} "}"))) (expression_statement "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);" (assignment_expression "pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00043278(&pppppppiStack_160,pppppppiVar29)" (identifier "FUN_00043278") (argument_list "(&pppppppiStack_160,pppppppiVar29)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) (, ",") (identifier "pppppppiVar29") () ")"))))) (; ";")) (if_statement "if (pppppppiVar18 == (int *******)0x0) {\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }" (if "if") (parenthesized_expression "(pppppppiVar18 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 == (int *******)0x0" (identifier "pppppppiVar18") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pppppppiVar18 = (int *******)(uint)bStack_115;\n        ppppppiVar25 = pppppppiVar24[0x17];\n        pppppppiVar4 = pppppppiVar29;\n        goto LAB_00052158;\n      }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)(uint)bStack_115;" (assignment_expression "pppppppiVar18 = (int *******)(uint)bStack_115" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(uint)bStack_115" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (cast_expression "(uint)bStack_115" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_115")))) (; ";")) (expression_statement "ppppppiVar25 = pppppppiVar24[0x17];" (assignment_expression "ppppppiVar25 = pppppppiVar24[0x17]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar24[0x17]" (identifier "pppppppiVar24") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "pppppppiVar4 = pppppppiVar29;" (assignment_expression "pppppppiVar4 = pppppppiVar29" (identifier "pppppppiVar4") (= "=") (identifier "pppppppiVar29")) (; ";")) (goto_statement "goto LAB_00052158;" (goto "goto") (statement_identifier "LAB_00052158") (; ";")) (} "}"))) (labeled_statement "LAB_000521d4:\n      pppppppiVar27 = (int *******)*pppppppiVar5;" (statement_identifier "LAB_000521d4") (: ":") (expression_statement "pppppppiVar27 = (int *******)*pppppppiVar5;" (assignment_expression "pppppppiVar27 = (int *******)*pppppppiVar5" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)*pppppppiVar5" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")))) (; ";"))) (expression_statement "pppppppiStack_178 = pppppppiVar18;" (assignment_expression "pppppppiStack_178 = pppppppiVar18" (identifier "pppppppiStack_178") (= "=") (identifier "pppppppiVar18")) (; ";")) (labeled_statement "LAB_000521dc:\n      ppppppiVar25 = pppppppiVar27[0xe];" (statement_identifier "LAB_000521dc") (: ":") (expression_statement "ppppppiVar25 = pppppppiVar27[0xe];" (assignment_expression "ppppppiVar25 = pppppppiVar27[0xe]" (identifier "ppppppiVar25") (= "=") (subscript_expression "pppppppiVar27[0xe]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) (; ";")) (if_statement "if (ppppppiVar25 != (int ******)0x0) {\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }" (if "if") (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 != (int ******)0x0" (identifier "ppppppiVar25") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);\n        pcVar32 = *(code **)(pcVar6 + 0x23cd8);\n      }" ({ "{") (do_statement "do {\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        } while (ppppppiVar25 != (int ******)0x0);" (do "do") (compound_statement "{\n          ppppppiVar25 = (int ******)*ppppppiVar25;\n          (**(code **)(pcVar6 + 0x23cd8))();\n        }" ({ "{") (expression_statement "ppppppiVar25 = (int ******)*ppppppiVar25;" (assignment_expression "ppppppiVar25 = (int ******)*ppppppiVar25" (identifier "ppppppiVar25") (= "=") (cast_expression "(int ******)*ppppppiVar25" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*ppppppiVar25" (* "*") (identifier "ppppppiVar25")))) (; ";")) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))();" (call_expression "(**(code **)(pcVar6 + 0x23cd8))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar25 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar25 != (int ******)0x0" (identifier "ppppppiVar25") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar6 + 0x23cd8);" (assignment_expression "pcVar32 = *(code **)(pcVar6 + 0x23cd8)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pppppppiVar27[0x10] = (int ******)0x1f;" (assignment_expression "pppppppiVar27[0x10] = (int ******)0x1f" (subscript_expression "pppppppiVar27[0x10]" (identifier "pppppppiVar27") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(int ******)0x1f" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1f"))) (; ";")) (expression_statement "pppppppiVar27[0xe] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0xe] = (int ******)0x0" (subscript_expression "pppppppiVar27[0xe]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar27[0xd] = (int ******)0x0;" (assignment_expression "pppppppiVar27[0xd] = (int ******)0x0" (subscript_expression "pppppppiVar27[0xd]" (identifier "pppppppiVar27") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*pcVar32)(pppppppiVar27[4]);" (call_expression "(*pcVar32)(pppppppiVar27[4])" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(pppppppiVar27[4])" (( "(") (subscript_expression "pppppppiVar27[4]" (identifier "pppppppiVar27") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "pppppppiVar27[4] = (int ******)0x0;" (assignment_expression "pppppppiVar27[4] = (int ******)0x0" (subscript_expression "pppppppiVar27[4]" (identifier "pppppppiVar27") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_00044d40(&pppppppiStack_160);" (call_expression "FUN_00044d40(&pppppppiStack_160)" (identifier "FUN_00044d40") (argument_list "(&pppppppiStack_160)" (( "(") (pointer_expression "&pppppppiStack_160" (& "&") (identifier "pppppppiStack_160")) () ")"))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar29;" (assignment_expression "pppppppiVar18 = pppppppiVar29" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar29")) (; ";")) (labeled_statement "joined_r0x00052b2c:\n      if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" (statement_identifier "joined_r0x00052b2c") (: ":") (if_statement "if (iVar10 != 0) {\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);\n      }" ({ "{") (expression_statement "(**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);" (call_expression "(**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23d08))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23d08)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23d08)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23d08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23d08)" (( "(") (binary_expression "pcVar6 + 0x23d08" (identifier "pcVar6") (+ "+") (number_literal "0x23d08")) () ")"))))) () ")")) (argument_list "(pppppppiVar24 + 0x22)" (( "(") (binary_expression "pppppppiVar24 + 0x22" (identifier "pppppppiVar24") (+ "+") (number_literal "0x22")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" (else "else") (compound_statement "{\n      pppppppiVar18 = (int *******)0x0;\n      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);\n      if (iVar7 != 0) goto LAB_000526c8;\n      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;\n    }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)0x0;" (assignment_expression "pppppppiVar18 = (int *******)0x0" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);" (assignment_expression "iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cb0))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23cb0)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23cb0)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cb0)" (( "(") (binary_expression "pcVar6 + 0x23cb0" (identifier "pcVar6") (+ "+") (number_literal "0x23cb0")) () ")"))))) () ")")) (argument_list "(pppppppiVar24 + 0x22,0)" (( "(") (binary_expression "pppppppiVar24 + 0x22" (identifier "pppppppiVar24") (+ "+") (number_literal "0x22")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_000526c8;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000526c8;" (goto "goto") (statement_identifier "LAB_000526c8") (; ";"))) (if_statement "if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;" (if "if") (parenthesized_expression "(pppppppiStack_178 == (int *******)0x0)" (( "(") (binary_expression "pppppppiStack_178 == (int *******)0x0" (identifier "pppppppiStack_178") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000520dc;" (goto "goto") (statement_identifier "LAB_000520dc") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" (else "else") (compound_statement "{\nLAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;\n  }" ({ "{") (labeled_statement "LAB_000526c8:\n    pppppppiStack_178 = (int *******)0xc;" (statement_identifier "LAB_000526c8") (: ":") (expression_statement "pppppppiStack_178 = (int *******)0xc;" (assignment_expression "pppppppiStack_178 = (int *******)0xc" (identifier "pppppppiStack_178") (= "=") (cast_expression "(int *******)0xc" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";"))) (} "}")))) (expression_statement "FUN_000499a0(pppppppiVar24);" (call_expression "FUN_000499a0(pppppppiVar24)" (identifier "FUN_000499a0") (argument_list "(pppppppiVar24)" (( "(") (identifier "pppppppiVar24") () ")"))) (; ";")) (expression_statement "*pppppppiVar5 = (int ******)0x0;" (assignment_expression "*pppppppiVar5 = (int ******)0x0" (pointer_expression "*pppppppiVar5" (* "*") (identifier "pppppppiVar5")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar5[1] = (int ******)0x0;" (assignment_expression "pppppppiVar5[1] = (int ******)0x0" (subscript_expression "pppppppiVar5[1]" (identifier "pppppppiVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar27 = pppppppiStack_178;" (assignment_expression "pppppppiVar27 = pppppppiStack_178" (identifier "pppppppiVar27") (= "=") (identifier "pppppppiStack_178")) (; ";")) (labeled_statement "LAB_000526ec:\n  if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }" (statement_identifier "LAB_000526ec") (: ":") (if_statement "if (uStack_10c == *puVar31) {\n    return pppppppiVar27;\n  }" (if "if") (parenthesized_expression "(uStack_10c == *puVar31)" (( "(") (binary_expression "uStack_10c == *puVar31" (identifier "uStack_10c") (== "==") (pointer_expression "*puVar31" (* "*") (identifier "puVar31"))) () ")")) (compound_statement "{\n    return pppppppiVar27;\n  }" ({ "{") (return_statement "return pppppppiVar27;" (return "return") (identifier "pppppppiVar27") (; ";")) (} "}")))) (expression_statement "uVar28 = uStack_10c;" (assignment_expression "uVar28 = uStack_10c" (identifier "uVar28") (= "=") (identifier "uStack_10c")) (; ";")) (expression_statement "(**(code **)(pcVar6 + 0x23c84))();" (call_expression "(**(code **)(pcVar6 + 0x23c84))()" (parenthesized_expression "(**(code **)(pcVar6 + 0x23c84))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23c84)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23c84)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23c84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23c84)" (( "(") (binary_expression "pcVar6 + 0x23c84" (identifier "pcVar6") (+ "+") (number_literal "0x23c84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "switchD_00052dc0_caseD_0:\n  pcVar6 = *(code **)(pcVar6 + 0x23adc);" (statement_identifier "switchD_00052dc0_caseD_0") (: ":") (expression_statement "pcVar6 = *(code **)(pcVar6 + 0x23adc);" (assignment_expression "pcVar6 = *(code **)(pcVar6 + 0x23adc)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x23adc)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23adc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23adc)" (( "(") (binary_expression "pcVar6 + 0x23adc" (identifier "pcVar6") (+ "+") (number_literal "0x23adc")) () ")"))))) (; ";"))) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)(pppppppiVar20 + 7) =\n       *(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)(pppppppiVar20 + 7)" (* "*") (cast_expression "(byte *)(pppppppiVar20 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar20 + 7)" (( "(") (binary_expression "pppppppiVar20 + 7" (identifier "pppppppiVar20") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1" (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (binary_expression "*(byte *)(pppppppiVar20 + 7) & 0xf6" (pointer_expression "*(byte *)(pppppppiVar20 + 7)" (* "*") (cast_expression "(byte *)(pppppppiVar20 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar20 + 7)" (( "(") (binary_expression "pppppppiVar20 + 7" (identifier "pppppppiVar20") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xf6")) (| "|") (call_expression "(byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3)" (( "(") (binary_expression "((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3" (parenthesized_expression "((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f)" (( "(") (binary_expression "(uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f" (call_expression "(uint)(**(int **)(pcVar6 + 0x22a58) << 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(**(int **)(pcVar6 + 0x22a58) << 6)" (( "(") (binary_expression "**(int **)(pcVar6 + 0x22a58) << 6" (pointer_expression "**(int **)(pcVar6 + 0x22a58)" (* "*") (pointer_expression "*(int **)(pcVar6 + 0x22a58)" (* "*") (cast_expression "(int **)(pcVar6 + 0x22a58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x22a58)" (( "(") (binary_expression "pcVar6 + 0x22a58" (identifier "pcVar6") (+ "+") (number_literal "0x22a58")) () ")"))))) (<< "<<") (number_literal "6")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "3")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);" (assignment_expression "iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18)" (identifier "iVar10") (= "=") (call_expression "FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18)" (identifier "FUN_00051f24") (argument_list "(pppppppiVar20,uVar28,pppppppiVar18)" (( "(") (identifier "pppppppiVar20") (, ",") (identifier "uVar28") (, ",") (identifier "pppppppiVar18") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n    return (int *******)0x0;\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (int *******)0x0;\n  }" ({ "{") (return_statement "return (int *******)0x0;" (return "return") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);" (assignment_expression "pppppppiVar27 =\n       (int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (identifier "pppppppiVar27") (= "=") (cast_expression "(int *******)\n       (**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcVar6 + 0x22c8c))\n                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (parenthesized_expression "(**(code **)(pcVar6 + 0x22c8c))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x22c8c)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x22c8c)" (* "*") (cast_expression "(code **)(pcVar6 + 0x22c8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x22c8c)" (( "(") (binary_expression "pcVar6 + 0x22c8c" (identifier "pcVar6") (+ "+") (number_literal "0x22c8c")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8 +\n                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (binary_expression "*(int *)(pcVar6 + 0x22694) + 0x30c8" (pointer_expression "*(int *)(pcVar6 + 0x22694)" (* "*") (cast_expression "(int *)(pcVar6 + 0x22694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x22694)" (( "(") (binary_expression "pcVar6 + 0x22694" (identifier "pcVar6") (+ "+") (number_literal "0x22694")) () ")")))) (+ "+") (number_literal "0x30c8")) (+ "+") (pointer_expression "*(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (* "*") (cast_expression "(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084)" (( "(") (binary_expression "iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084" (binary_expression "iVar10 * 4 + *(int *)(pcVar6 + 0x22694)" (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4")) (+ "+") (pointer_expression "*(int *)(pcVar6 + 0x22694)" (* "*") (cast_expression "(int *)(pcVar6 + 0x22694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x22694)" (( "(") (binary_expression "pcVar6 + 0x22694" (identifier "pcVar6") (+ "+") (number_literal "0x22694")) () ")"))))) (+ "+") (number_literal "0x3084")) () ")"))))) (, ",") (number_literal "5") () ")"))))) (; ";")) (return_statement "return pppppppiVar27;" (return "return") (identifier "pppppppiVar27") (; ";")) (labeled_statement "LAB_00052628:\n  while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" (statement_identifier "LAB_00052628") (: ":") (while_statement "while( true ) {\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    pppppppiVar22 = (int *******)0x0;\n    iVar23 = 0;\n    bVar1 = false;\n    if (pppppppiVar27[6][1] != (int *****)0x0) break;\nLAB_00052650:\n    pppppppiVar29 = pppppppiVar27;\n    pppppppiVar20 = pppppppiVar22;\n    pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);\n    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;\n    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);\n    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }\n    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);\n    pppppppiVar18 = (int *******)pppppppiVar27[2];\n    if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }\n  }" ({ "{") (expression_statement "pppppppiVar22 = (int *******)0x0;" (assignment_expression "pppppppiVar22 = (int *******)0x0" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (if_statement "if (pppppppiVar27[6][1] != (int *****)0x0) break;" (if "if") (parenthesized_expression "(pppppppiVar27[6][1] != (int *****)0x0)" (( "(") (binary_expression "pppppppiVar27[6][1] != (int *****)0x0" (subscript_expression "pppppppiVar27[6][1]" (subscript_expression "pppppppiVar27[6]" (identifier "pppppppiVar27") ([ "[") (number_literal "6") (] "]")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00052650:\n    pppppppiVar29 = pppppppiVar27;" (statement_identifier "LAB_00052650") (: ":") (expression_statement "pppppppiVar29 = pppppppiVar27;" (assignment_expression "pppppppiVar29 = pppppppiVar27" (identifier "pppppppiVar29") (= "=") (identifier "pppppppiVar27")) (; ";"))) (expression_statement "pppppppiVar20 = pppppppiVar22;" (assignment_expression "pppppppiVar20 = pppppppiVar22" (identifier "pppppppiVar20") (= "=") (identifier "pppppppiVar22")) (; ";")) (expression_statement "pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);" (assignment_expression "pppppppiVar18 =\n         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" (parenthesized_expression "(*(code *)(iVar7 + 0x5bf8))" (( "(") (pointer_expression "*(code *)(iVar7 + 0x5bf8)" (* "*") (cast_expression "(code *)(iVar7 + 0x5bf8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x5bf8)" (( "(") (binary_expression "iVar7 + 0x5bf8" (identifier "iVar7") (+ "+") (number_literal "0x5bf8")) () ")")))) () ")")) (argument_list "(pppppppiVar19,pppppppiVar27,pppppppiVar22,1)" (( "(") (identifier "pppppppiVar19") (, ",") (identifier "pppppppiVar27") (, ",") (identifier "pppppppiVar22") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;" (if "if") (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 != (int *******)0x0" (identifier "pppppppiVar18") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000521d4;" (goto "goto") (statement_identifier "LAB_000521d4") (; ";"))) (expression_statement "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);" (assignment_expression "pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1)" (identifier "pppppppiVar22") (= "=") (cast_expression "(int *******)((int)pppppppiVar22 + 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppiVar22 + 1)" (( "(") (binary_expression "(int)pppppppiVar22 + 1" (cast_expression "(int)pppppppiVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar22")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }" (if "if") (parenthesized_expression "(*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0)" (( "(") (binary_expression "*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0" (pointer_expression "*(int *)((int)pppppppiVar27[6] + iVar23 + 4)" (* "*") (cast_expression "(int *)((int)pppppppiVar27[6] + iVar23 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppiVar27[6] + iVar23 + 4)" (( "(") (binary_expression "(int)pppppppiVar27[6] + iVar23 + 4" (binary_expression "(int)pppppppiVar27[6] + iVar23" (cast_expression "(int)pppppppiVar27[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar27[6]" (identifier "pppppppiVar27") ([ "[") (number_literal "6") (] "]"))) (+ "+") (identifier "iVar23")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pppppppiVar18 = (int *******)pppppppiVar27[2];\n      goto LAB_000525ec;\n    }" ({ "{") (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)pppppppiVar27[2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar27[2]" (identifier "pppppppiVar27") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto LAB_000525ec;" (goto "goto") (statement_identifier "LAB_000525ec") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar6 + 0x23cd8))(piStack_164);" (call_expression "(**(code **)(pcVar6 + 0x23cd8))(piStack_164)" (parenthesized_expression "(**(code **)(pcVar6 + 0x23cd8))" (( "(") (pointer_expression "**(code **)(pcVar6 + 0x23cd8)" (* "*") (pointer_expression "*(code **)(pcVar6 + 0x23cd8)" (* "*") (cast_expression "(code **)(pcVar6 + 0x23cd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x23cd8)" (( "(") (binary_expression "pcVar6 + 0x23cd8" (identifier "pcVar6") (+ "+") (number_literal "0x23cd8")) () ")"))))) () ")")) (argument_list "(piStack_164)" (( "(") (identifier "piStack_164") () ")"))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar27[2];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar27[2]" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)pppppppiVar27[2]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar27[2]" (identifier "pppppppiVar27") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (pppppppiVar18 != pppppppiVar22) {\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" (if "if") (parenthesized_expression "(pppppppiVar18 != pppppppiVar22)" (( "(") (binary_expression "pppppppiVar18 != pppppppiVar22" (identifier "pppppppiVar18") (!= "!=") (identifier "pppppppiVar22")) () ")")) (compound_statement "{\n      bVar1 = true;\n      goto LAB_000525f4;\n    }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_000525f4;" (goto "goto") (statement_identifier "LAB_000525f4") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00052614;" (goto "goto") (statement_identifier "LAB_00052614") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))))))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (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)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (pointer_expression argument: (identifier)) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (identifier)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement))) condition: (parenthesized_expression (true)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) 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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) 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: (primitive_type) declarator: (abstract_pointer_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 (while_statement condition: (parenthesized_expression (true)) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (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: (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: (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (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: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (pointer_expression argument: (identifier)) right: (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: (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: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))))))) 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: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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))))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (number_literal) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (identifier) right: (number_literal)) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (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: (primitive_type) declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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 (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) 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: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (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: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))) right: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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 (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) 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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) right: (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: (identifier) right: (number_literal))))))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal)))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (number_literal)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal))) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 (identifier)) arguments: (argument_list (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (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: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (identifier)) right: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (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))) (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (identifier) arguments: (argument_list (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: (primitive_type) declarator: (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: (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: (primitive_type) declarator: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) right: (parenthesized_expression (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: (primitive_type) declarator: (abstract_pointer_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: (identifier))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) 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: (primitive_type) declarator: (abstract_pointer_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 (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_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: (primitive_type) declarator: (abstract_pointer_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: (identifier)))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (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 (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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 (identifier) (identifier) (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier))))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

int *******
MASKED(undefined4 param_1,int *******param_2,int *******param_3,int *******param_4,
            undefined *param_5,int *param_6)

{
  bool bVar1;
  int *******pppppppiVar2;
  undefined *puVar3;
  int *******pppppppiVar4;
  int *******pppppppiVar5;
  code *pcVar6;
  byte bVar15;
  int iVar7;
  int ******ppppppiVar8;
  byte *pbVar9;
  int iVar10;
  int ******ppppppiVar11;
  undefined1 *puVar12;
  int iVar13;
  int *piVar14;
  uint uVar16;
  int *****pppppiVar17;
  int *******pppppppiVar18;
  int *******pppppppiVar19;
  int *******pppppppiVar20;
  uint uVar21;
  int *******pppppppiVar22;
  int iVar23;
  int *******pppppppiVar24;
  int ******ppppppiVar25;
  undefined *puVar26;
  int *******pppppppiVar27;
  uint uVar28;
  int *******pppppppiVar29;
  undefined *puVar30;
  uint *puVar31;
  code *pcVar32;
  int iStack_190;
  int *******pppppppiStack_188;
  int *******pppppppiStack_178;
  int *******apppppppiStack_174 [2];
  int ******ppppppiStack_16c;
  int iStack_168;
  int *piStack_164;
  int *******pppppppiStack_160;
  int *******apppppppiStack_15c [5];
  int iStack_148;
  int *******pppppppiStack_144;
  int *******pppppppiStack_140;
  int *******pppppppiStack_13c;
  int iStack_138;
  int *******pppppppiStack_134;
  int *******pppppppiStack_130;
  int *******pppppppiStack_12c;
  int *******pppppppiStack_128;
  int ******ppppppiStack_120;
  undefined1 uStack_118;
  byte bStack_117;
  byte bStack_116;
  byte bStack_115;
  int ******ppppppiStack_110;
  uint uStack_10c;
  int *******pppppppiStack_108;
  int iStack_104;
  int ******ppppppiStack_100;
  int *******pppppppiStack_fc;
  int *piStack_f8;
  undefined *puStack_f4;
  int *******pppppppiStack_f0;
  int *******pppppppiStack_ec;
  int *******pppppppiStack_e8;
  code *pcStack_e4;
  undefined *puStack_d0;
  int *piStack_cc;
  undefined *puStack_c8;
  code *pcStack_c0;
  code *pcStack_bc;
  int *****pppppiStack_b8;
  int *******pppppppiStack_b4;
  code *pcStack_b0;
  undefined4 *puStack_ac;
  undefined auStack_a4 [4];
  undefined1 uStack_a0;
  int *******pppppppiStack_9c;
  int *******pppppppiStack_98;
  undefined *puStack_94;
  int *******pppppppiStack_90;
  undefined *puStack_8c;
  int *******pppppppiStack_88;
  undefined4 uStack_84;
  int *******pppppppiStack_80;
  int *******pppppppiStack_7c;
  int *piStack_78;
  code *pcStack_74;
  undefined *local_60;
  int *local_5c;
  undefined auStack_34 [4];
  undefined1 local_30;
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_00075be8;
  local_2c = *(int *)PTR___stack_chk_guard_00075be8;
  puVar26 = PTR_DAT_00075978 + 0x250;
  pppppppiVar29 = (int *******)*param_2;
  local_5c = param_6;
  local_60 = param_5;
  pppppppiVar27 = param_2;
  pppppppiVar20 = param_3;
  pppppppiVar18 = param_4;
  pppppppiVar5 = (int *******)FUN_00050250();
  if ((*param_6 == 0) || (pppppppiVar5 != (int *******)0x0)) {
    pppppppiVar19 = pppppppiVar29 + 0x10;
    pppppppiVar22 = pppppppiVar29 + 0xe;
    pcVar6 = (code *)(PTR_LAB_00075920 + 0x63ec);
LAB_00051b68:
    bVar15 = *(byte *)(param_3 + 1);
    pppppppiVar24 = pppppppiVar5;
    if ((bVar15 & 0xf7) != 2) {
      do {
        if ((param_5 != (undefined *)0x0) && (pppppppiVar5 = pppppppiVar24, bVar15 == 9)) break;
        local_5c = param_6;
        local_60 = param_5;
        pppppppiVar27 = param_2;
        pppppppiVar20 = param_3;
        pppppppiVar18 = param_4;
        pppppppiVar29 = (int *******)FUN_00050250(param_1);
        if (*param_6 == 0) {
          pppppppiVar5 = pppppppiVar29;
          pppppppiVar4 = pppppppiVar24;
          pppppppiVar2 = pppppppiVar29;
          if (pppppppiVar24 == (int *******)0x0) goto LAB_00051b68;
        }
        else {
          pppppppiVar4 = pppppppiVar29;
          pppppppiVar2 = pppppppiVar24;
          if (pppppppiVar29 == (int *******)0x0) {
            pppppppiVar20 = (int *******)0x0;
            if (pppppppiVar24 != (int *******)0x0) {
              pppppppiVar27 = (int *******)(PTR_LAB_00075920 + 0x4588);
              FUN_00042ca0(pppppppiVar24);
            }
            pppppppiVar5 = (int *******)0x0;
            break;
          }
        }
        pppppppiVar5 = pppppppiVar4;
        if (pppppppiVar2 == (int *******)0x0) goto LAB_00051b68;
        local_30 = 0x10;
        pppppppiVar27 = pppppppiVar19;
        pppppppiVar20 = pppppppiVar24;
        pppppppiVar18 = pppppppiVar29;
        local_60 = auStack_34;
        pppppppiVar5 = (int *******)(*pcVar6)(pppppppiVar22);
        puVar30 = PTR_LAB_00075920;
        if (pppppppiVar5 == (int *******)0x0) {
          param_5 = PTR_LAB_00075920 + 0x2ca0;
          FUN_00042ca0(pppppppiVar29,PTR_LAB_00075920 + 0x4588,0);
          pppppppiVar20 = (int *******)0x0;
          pppppppiVar27 = (int *******)(puVar30 + 0x4588);
          FUN_00042ca0(pppppppiVar24);
          pppppppiVar5 = (int *******)0x0;
          *param_6 = 0xc;
          param_3 = (int *******)puVar30;
          break;
        }
        bVar15 = *(byte *)(param_3 + 1);
        pppppppiVar24 = pppppppiVar5;
        if ((bVar15 & 0xf7) == 2) break;
      } while( true );
    }
  }
  else {
    pppppppiVar5 = (int *******)0x0;
  }
  if (local_2c == *(int *)puVar3) {
    return pppppppiVar5;
  }
  pcVar6 = FUN_00051cfc;
  iVar10 = local_2c;
  puVar30 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar14 = local_5c;
  puVar3 = local_60;
  puStack_c8 = puVar30 + 0x2b884;
  puStack_ac = *(undefined4 **)(puVar30 + 0x23eec);
  pcStack_b0 = (code *)(*(int *)(puVar30 + 0x23c7c) + 0x1ab4);
  ppppppiVar25 = *pppppppiVar27;
  pppppppiStack_9c = (int *******)*puStack_ac;
  pppppiStack_b8 = ppppppiVar25[0x15];
  piStack_78 = param_6;
  piStack_cc = local_5c;
  puStack_d0 = local_60;
  pppppppiVar19 = pppppppiVar20;
  pppppppiVar22 = pppppppiVar18;
  pppppppiStack_b4 = pppppppiVar27;
  pppppppiStack_98 = pppppppiVar5;
  puStack_94 = param_5;
  pppppppiStack_90 = param_3;
  puStack_8c = puVar26;
  pppppppiStack_88 = param_2;
  uStack_84 = param_1;
  pppppppiStack_80 = param_4;
  pppppppiStack_7c = pppppppiVar29;
  pcStack_74 = pcVar6;
  pppppppiStack_e8 = (int *******)MASKED();
  if (*piVar14 == 0) {
    iVar7 = *(int *)(puStack_c8 + -0x7c08);
LAB_00051d9c:
    param_4 = (int *******)(ppppppiVar25 + 0x10);
    pcStack_c0 = (code *)(iVar7 + -0x92c);
    pcStack_bc = (code *)(*(int *)(puStack_c8 + -0x7c60) + 0x63ec);
    do {
      pppppppiVar5 = pppppppiStack_e8;
      pppppppiVar19 = (int *******)0x800000;
      pppppppiStack_e8 = pppppppiVar5;
      if (*(char *)(pppppppiVar20 + 1) != '\n') goto LAB_00051eb8;
      iVar7 = (*pcStack_c0)(pppppppiVar20,iVar10,(uint)pppppppiVar18 | 0x800000);
      bVar15 = *(byte *)(pppppppiVar20 + 1);
      *(int *)(iVar10 + 0x28) = *(int *)(iVar10 + 0x28) + iVar7;
      if ((bVar15 & 0xf7) == 2) {
        pppppppiVar22 = (int *******)0x0;
      }
      else if ((puVar3 == (undefined *)0x0) || (pppppppiVar22 = (int *******)0x0, bVar15 != 9)) {
        pppppppiVar29 = (int *******)ppppppiVar25[0x15];
        ppppppiVar25[0x15] = pppppiStack_b8;
        piStack_cc = piVar14;
        puStack_d0 = puVar3;
        pppppppiVar27 = pppppppiStack_b4;
        pppppppiVar22 =
             (int *******)(*pcStack_b0)(iVar10,pppppppiStack_b4,pppppppiVar20,pppppppiVar18);
        if ((*piVar14 != 0) && (pppppppiVar22 == (int *******)0x0)) {
          pppppppiVar19 = (int *******)0x0;
          if (pppppppiVar5 != (int *******)0x0) {
            pppppppiVar27 = (int *******)(*(int *)(puStack_c8 + -0x7c60) + 0x4588);
            FUN_00042ca0(pppppppiVar5);
          }
          pppppppiStack_e8 = (int *******)0x0;
          goto LAB_00051eb8;
        }
        pppppppiVar29 = (int *******)((uint)ppppppiVar25[0x15] | (uint)pppppppiVar29);
        ppppppiVar25[0x15] = (int *****)pppppppiVar29;
      }
      puStack_d0 = auStack_a4;
      uStack_a0 = 10;
      pppppppiVar27 = param_4;
      pppppppiStack_e8 = (int *******)(*pcStack_bc)(ppppppiVar25 + 0xe);
    } while (pppppppiStack_e8 != (int *******)0x0);
    *piVar14 = 0xc;
    pppppppiVar19 = pppppppiVar5;
  }
  else {
    iVar7 = *(int *)(puStack_c8 + -0x7c08);
    if (pppppppiStack_e8 != (int *******)0x0) goto LAB_00051d9c;
    pppppppiStack_e8 = (int *******)0x0;
  }
LAB_00051eb8:
  if (pppppppiStack_9c == (int *******)*puStack_ac) {
    return pppppppiStack_e8;
  }
  pcVar6 = *(code **)(puStack_c8 + -0x79d8);
  pcVar32 = FUN_00051f24;
  pppppppiVar5 = pppppppiStack_9c;
  (*pcVar6)();
  puStack_f4 = puVar3;
  piStack_f8 = piVar14;
  pppppppiVar5[3] = (int ******)pppppppiVar22;
  pppppppiVar5[2] = (int ******)0x0;
  pppppppiVar5[6] = (int ******)0x0;
  puVar31 = *(uint **)(pcVar6 + 0x23cc4);
  pppppppiVar24 = (int *******)*pppppppiVar5;
  pppppppiStack_178 = (int *******)0x0;
  *(byte *)(pppppppiVar5 + 7) = *(byte *)(pppppppiVar5 + 7) & 9;
  uStack_10c = *puVar31;
  pppppppiStack_108 = pppppppiVar20;
  iStack_104 = iVar10;
  ppppppiStack_100 = ppppppiVar25;
  pppppppiStack_fc = pppppppiVar18;
  pppppppiStack_f0 = param_4;
  pppppppiStack_ec = pppppppiVar29;
  pcStack_e4 = pcVar32;
  if (pppppppiVar5[1] < (int ******)0xa0) {
    pppppppiVar18 = (int *******)0xa0;
    pppppppiVar20 = pppppppiVar19;
    pppppppiVar24 = (int *******)(**(code **)(pcVar6 + 0x23c10))(pppppppiVar24,0xa0);
    if (pppppppiVar24 == (int *******)0x0) {
      pppppppiVar27 = (int *******)0xc;
      goto LAB_000526ec;
    }
    *pppppppiVar5 = (int ******)pppppppiVar24;
    pppppppiVar5[1] = (int ******)0xa0;
  }
  pcVar32 = *(code **)(pcVar6 + 0x23bb0);
  pppppppiVar20 = (int *******)0xa0;
  pppppppiVar18 = (int *******)0x0;
  pppppppiVar5[2] = (int ******)0xa0;
  (*pcVar32)(pppppppiVar24,0);
  pppppppiVar24[0x10] = (int ******)0x1f;
  if (pppppppiVar19 < (int *******)0xaaaaaaa) {
    pppppppiVar29 = (int *******)((int)pppppppiVar19 + 1);
    pcVar32 = *(code **)(pcVar6 + 0x23c08);
    pppppppiVar24[1] = (int ******)pppppppiVar29;
    ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 * 8);
    *pppppppiVar24 = ppppppiVar25;
    if (pppppppiVar19 == (int *******)0x0) {
      ppppppiVar25 = (int ******)0x0;
      pppppppiVar18 = (int *******)0x1;
    }
    else {
      pppppppiVar18 = (int *******)0x1;
      do {
        pppppppiVar18 = (int *******)((int)pppppppiVar18 * 2);
        ppppppiVar25 = (int ******)((int)pppppppiVar18 + -1);
      } while (pppppppiVar18 <= pppppppiVar19);
    }
    ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0xc,pppppppiVar18);
    pppppppiVar24[0x11] = ppppppiVar25;
    pcVar32 = *(code **)(pcVar6 + 0x23c44);
    pppppppiVar24[8] = ppppppiVar8;
    ppppppiVar25 = (int ******)(*pcVar32)();
    pcVar32 = *(code **)(pcVar6 + 0x23b44);
    pppppppiVar24[0x17] = ppppppiVar25;
    pbVar9 = (byte *)(*pcVar32)(0xe);
    pppppppiVar18 = (int *******)0x55;
    if ((((*pbVar9 & 0xdf) == 0x55) &&
        (pppppppiVar18 = (int *******)&DAT_00000046, (pbVar9[1] & 0xdf) == 0x54)) &&
       (pppppppiVar18 = (int *******)&DAT_00000004, (pbVar9[2] & 0xdf) == 0x46)) {
      iVar10 = 3;
      if (pbVar9[3] == 0x2d) {
        iVar10 = 4;
      }
      pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2b48);
      iVar10 = (**(code **)(pcVar6 + 0x23d14))(pbVar9 + iVar10,pppppppiVar18);
      if (iVar10 == 0) {
        *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xdf | 0x20;
      }
    }
    bVar15 = *(byte *)(pppppppiVar24 + 0x16);
    *(byte *)(pppppppiVar24 + 0x16) = bVar15 & 0xef;
    if ((int)pppppppiVar24[0x17] < 2) {
LAB_00052094:
      ppppppiVar25 = *pppppppiVar24;
    }
    else {
      if ((bVar15 & 0x20) != 0) {
        pppppppiVar24[0xf] = (int ******)(*(int *)(pcVar6 + 0x23694) + 0x3064);
        goto LAB_00052094;
      }
      pppppppiVar18 = (int *******)0x1;
      ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23aa4))(0x20,1);
      pppppppiVar24[0xf] = ppppppiVar25;
      if (ppppppiVar25 == (int ******)0x0) goto LAB_000526c8;
      iVar10 = 0;
      do {
        uVar16 = iVar10 << 3;
        uVar28 = 0;
        do {
          while( true ) {
            uVar21 = uVar28;
            uVar28 = (**(code **)(pcVar6 + 0x23b9c))(uVar16);
            if (uVar28 == 0xffffffff) break;
            *(uint *)((int)pppppppiVar24[0xf] + iVar10) =
                 *(uint *)((int)pppppppiVar24[0xf] + iVar10) | 1 << (uVar21 & 0x1f);
            if (((uVar16 & 0xffffff80) == 0) && (uVar28 != uVar16)) {
LAB_00052780:
              *(byte *)(pppppppiVar24 + 0x16) = *(byte *)(pppppppiVar24 + 0x16) & 0xef | 0x10;
            }
            uVar16 = uVar16 + 1;
            uVar28 = uVar21 + 1;
            if (uVar21 + 1 == 0x20) goto LAB_000527e4;
          }
          if ((uVar16 & 0xffffff80) == 0) goto LAB_00052780;
          uVar16 = uVar16 + 1;
          uVar28 = uVar21 + 1;
        } while (uVar21 + 1 != 0x20);
LAB_000527e4:
        pppppppiVar20 = (int *******)(uVar21 + 1);
        iVar10 = iVar10 + 4;
      } while (iVar10 != 0x20);
      ppppppiVar25 = *pppppppiVar24;
      pppppppiVar18 = (int *******)0x20;
    }
    if ((ppppppiVar25 == (int ******)0x0) ||
       (iVar10 = *(int *)(pcVar6 + 0x23b8c), pppppppiVar24[8] == (int ******)0x0))
    goto LAB_000526c8;
    pppppppiStack_178 = (int *******)0x0;
    if (iVar10 == 0) {
LAB_000520dc:
      ppppppiVar8 = pppppppiVar5[5];
      (**(code **)(pcVar6 + 0x23bb0))(apppppppiStack_15c,0,0x4c);
      uVar28 = (uint)pppppppiVar22 & 0x400000;
      uStack_118 = uVar28 != 0;
      ppppppiVar25 = pppppppiVar24[0x17];
      pppppppiVar18 = (int *******)0x1;
      if (ppppppiVar8 == (int ******)0x0) {
        pppppppiVar18 = (int *******)(uint)(byte)uStack_118;
      }
      uVar16 = (int)pppppppiVar24[0x16] << 2;
      pppppppiVar20 = (int *******)(uVar16 >> 0x1f);
      bStack_115 = (byte)pppppppiVar18;
      bStack_117 = (byte)(uVar16 >> 0x1f);
      bStack_116 = (byte)((uint)((int)pppppppiVar24[0x16] << 3) >> 0x1f);
      pppppppiVar4 = (int *******)(uint)(byte)uStack_118;
      pppppppiStack_160 = pppppppiVar27;
      pppppppiStack_134 = pppppppiVar19;
      pppppppiStack_130 = pppppppiVar19;
      pppppppiStack_12c = pppppppiVar19;
      pppppppiStack_128 = pppppppiVar19;
      ppppppiStack_120 = ppppppiVar8;
      ppppppiStack_110 = ppppppiVar25;
      if (pppppppiVar19 == (int *******)0x0) {
LAB_00052158:
        pppppppiVar29 = pppppppiVar4;
        if (pppppppiVar18 != (int *******)0x0) {
          pppppppiVar27 = apppppppiStack_15c[0];
        }
        apppppppiStack_15c[0] = pppppppiVar27;
        if (uVar28 == 0) {
          if (1 < (int)ppppppiVar25) {
            FUN_000437e4(&pppppppiStack_160);
            pppppppiVar18 = pppppppiStack_144;
          }
          else if (ppppppiVar8 == (int ******)0x0) {
            pppppppiStack_140 = pppppppiStack_13c;
            pppppppiVar18 = pppppppiStack_13c;
          }
          else {
            if ((int)pppppppiStack_130 <= (int)pppppppiStack_13c) {
              pppppppiStack_13c = pppppppiStack_130;
            }
            pppppppiVar18 = pppppppiStack_144;
            pppppppiStack_140 = pppppppiStack_144;
            if ((int)pppppppiStack_144 < (int)pppppppiStack_13c) {
              do {
                puVar12 = (undefined1 *)((int)pppppppiVar27 + (int)pppppppiStack_144);
                iVar7 = (int)pppppppiStack_160 + (int)pppppppiStack_144;
                pppppppiStack_144 = (int *******)((int)pppppppiStack_144 + 1);
                *puVar12 = *(undefined1 *)
                            ((int)ppppppiStack_120 + (uint)*(byte *)(iVar7 + iStack_148));
                pppppppiVar18 = pppppppiStack_13c;
                pppppppiStack_140 = pppppppiStack_13c;
              } while (pppppppiStack_13c != pppppppiStack_144);
            }
          }
        }
        else {
          if (1 < (int)ppppppiVar25) {
            do {
              pppppppiVar18 = (int *******)FUN_00043a6c(&pppppppiStack_160);
              if (pppppppiVar18 != (int *******)0x0) break;
              pppppppiVar18 = pppppppiStack_144;
              if (((int)pppppppiVar19 <= (int)pppppppiStack_140) ||
                 (pppppppiVar29 = (int *******)((int)pppppppiStack_13c << 1),
                 (int)pppppppiStack_144 + (int)pppppppiVar24[0x17] < (int)pppppppiStack_13c))
              goto LAB_00052338;
              pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);
            } while (pppppppiVar18 == (int *******)0x0);
            goto LAB_000521d4;
          }
          FUN_00043700(&pppppppiStack_160);
          pppppppiVar18 = pppppppiStack_144;
        }
LAB_00052338:
        pppppppiStack_144 = pppppppiVar18;
        pppppppiStack_178 = (int *******)0x0;
        ppppppiVar25 = *pppppppiVar5;
        pppppppiVar5[6] = (int ******)0x0;
        ppppppiVar25[0x20] = (int *****)pppppppiVar22;
        iVar7 = FUN_0004f6d4(apppppppiStack_174,&pppppppiStack_160,(uint)pppppppiVar22 | 0x800000);
        iStack_138 = iStack_138 + iVar7;
        pppppppiVar29 = pppppppiVar5;
        pppppppiVar20 = (int *******)apppppppiStack_174;
        pppppppiVar27 =
             (int *******)
             FUN_00051cfc(&pppppppiStack_160,pppppppiVar5,apppppppiStack_174,pppppppiVar22,0,
                          &pppppppiStack_178);
        if (pppppppiStack_178 == (int *******)0x0) {
          iVar7 = *(int *)(pcVar6 + 0x239fc);
          pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);
          iStack_168 = CONCAT13(2,iStack_168._1_3_);
          pppppppiVar20 = (int *******)0x0;
          ppppppiVar8 = (int ******)
                        FUN_000463ec(ppppppiVar25 + 0xe,pppppppiVar29,0,0,&ppppppiStack_16c);
          ppppppiVar11 = ppppppiVar8;
          if (pppppppiVar27 == (int *******)0x0) goto LAB_00052400;
        }
        else {
          iVar7 = *(int *)(pcVar6 + 0x239fc);
          if (pppppppiVar27 == (int *******)0x0) {
            pppppppiVar27 = (int *******)*pppppppiVar5;
            pppppppiVar24[0xd] = (int ******)0x0;
            goto LAB_000521dc;
          }
          iStack_168 = CONCAT13(2,iStack_168._1_3_);
          ppppppiVar8 = (int ******)
                        FUN_000463ec(ppppppiVar25 + 0xe,ppppppiVar25 + 0x10,0,0,&ppppppiStack_16c);
        }
        pppppppiVar29 = (int *******)(ppppppiVar25 + 0x10);
        iStack_168 = CONCAT13(0x10,iStack_168._1_3_);
        ppppppiVar11 = (int ******)
                       (*(code *)(iVar7 + 0x63ec))
                                 (ppppppiVar25 + 0xe,pppppppiVar29,pppppppiVar27,ppppppiVar8,
                                  &ppppppiStack_16c);
        pppppppiVar20 = pppppppiVar27;
LAB_00052400:
        pppppppiVar19 = &ppppppiStack_16c;
        pppppppiVar27 = (int *******)*pppppppiVar5;
        if ((ppppppiVar8 == (int ******)0x0) ||
           (pcVar32 = *(code **)(pcVar6 + 0x23c08), ppppppiVar11 == (int ******)0x0)) {
          pppppppiVar24[0xd] = (int ******)0x0;
          pppppppiStack_178 = (int *******)0xc;
        }
        else {
          pppppppiVar29 = (int *******)pppppppiVar27[1];
          pppppppiVar24[0xd] = ppppppiVar11;
          ppppppiVar25 = (int ******)(*pcVar32)((int)pppppppiVar29 << 2);
          pcVar32 = *(code **)(pcVar6 + 0x23c08);
          pppppppiVar27[3] = ppppppiVar25;
          pppppppiVar20 = (int *******)(*pcVar32)((int)pppppppiVar29 << 2);
          pppppppiVar27[4] = (int ******)pppppppiVar20;
          iVar7 = (int)pppppppiVar29 * 0xc;
          ppppppiVar8 = (int ******)(**(code **)(pcVar6 + 0x23c08))(iVar7);
          pcVar32 = *(code **)(pcVar6 + 0x23c08);
          pppppppiVar27[5] = ppppppiVar8;
          ppppppiVar11 = (int ******)(*pcVar32)(iVar7);
          pppppppiVar27[6] = ppppppiVar11;
          if ((((ppppppiVar25 != (int ******)0x0) && (pppppppiVar20 != (int *******)0x0)) &&
              (ppppppiVar8 != (int ******)0x0)) && (ppppppiVar11 != (int ******)0x0)) {
            ppppppiVar8 = pppppppiVar5[6];
            ppppppiVar25 = (int ******)(**(code **)(pcVar6 + 0x23c08))((int)ppppppiVar8 << 2);
            pppppppiVar27[0x21] = ppppppiVar25;
            if (ppppppiVar25 != (int ******)0x0) {
              ppppppiVar11 = (int ******)0x0;
              if (ppppppiVar8 != (int ******)0x0) {
                do {
                  *ppppppiVar25 = (int *****)ppppppiVar11;
                  ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);
                  ppppppiVar25 = ppppppiVar25 + 1;
                } while (ppppppiVar11 != ppppppiVar8);
              }
              FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x54d4,pppppppiVar27);
              if (pppppppiVar5[6] == (int ******)0x0) {
                ppppppiVar25 = pppppppiVar27[0x21];
LAB_00052530:
                (**(code **)(pcVar6 + 0x23cd8))(ppppppiVar25);
                pppppppiVar27[0x21] = (int ******)0x0;
              }
              else {
                ppppppiVar25 = pppppppiVar27[0x21];
                if (*ppppppiVar25 == (int *****)0x0) {
                  ppppppiVar11 = (int ******)0x0;
                  ppppppiVar8 = ppppppiVar25;
                  do {
                    ppppppiVar8 = ppppppiVar8 + 1;
                    ppppppiVar11 = (int ******)((int)ppppppiVar11 + 1);
                    if (ppppppiVar11 == pppppppiVar5[6]) goto LAB_00052530;
                  } while ((int ******)*ppppppiVar8 == ppppppiVar11);
                }
              }
            }
            pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x68f4);
            pppppppiVar20 = pppppppiVar5;
            pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);
            if (pppppppiVar18 == (int *******)0x0) {
              pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x23a54) + -0x6734);
              pppppppiVar20 = pppppppiVar27;
              pppppppiVar18 = (int *******)FUN_00042ca0(pppppppiVar27[0xd],pppppppiVar29);
              if (pppppppiVar18 == (int *******)0x0) {
                FUN_000458f0(pppppppiVar27[0xd],*(int *)(pcVar6 + 0x239fc) + 0x55a0,pppppppiVar27);
                pppppppiVar29 = (int *******)(*(int *)(pcVar6 + 0x239fc) + 0x4ecc);
                pppppppiVar20 = pppppppiVar27;
                pppppppiVar18 = (int *******)FUN_000458f0(pppppppiVar27[0xd],pppppppiVar29);
                if (pppppppiVar18 == (int *******)0x0) {
                  iVar7 = *(int *)(pcVar6 + 0x239fc);
                  pppppppiVar22 = (int *******)0x0;
                  pppppppiVar18 = (int *******)pppppppiVar27[2];
                  bVar1 = false;
LAB_000525ec:
                  if (pppppppiVar18 == pppppppiVar22) goto LAB_00052620;
LAB_000525f4:
                  iVar23 = (int)pppppppiVar22 * 0xc;
                  if (pppppppiVar27[6][(int)pppppppiVar22 * 3 + 1] == (int *****)0x0)
                  goto LAB_00052650;
LAB_00052614:
                  pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);
                  if (pppppppiVar18 == pppppppiVar22) {
LAB_00052620:
                    if (bVar1) goto LAB_00052628;
                    if ((((((uint)pppppppiVar5[7] & 0x8000000) != 0) ||
                         (pppppppiVar5[6] == (int ******)0x0)) ||
                        (-1 < *(char *)(pppppppiVar27 + 0x16))) &&
                       (pppppppiVar27[0x13] == (int ******)0x0)) goto LAB_00052998;
                    ppppppiVar25 = (int ******)
                                   (**(code **)(pcVar6 + 0x23c08))((int)pppppppiVar22 * 0xc);
                    pppppppiVar27[7] = ppppppiVar25;
                    if (ppppppiVar25 != (int ******)0x0) {
                      pppppppiVar18 = (int *******)0x0;
                      if (pppppppiVar22 != (int *******)0x0) {
                        iVar7 = 0;
                        while( true ) {
                          puVar12 = (undefined1 *)((int)ppppppiVar25 + iVar7);
                          pppppppiVar18 = (int *******)((int)pppppppiVar18 + 1);
                          *puVar12 = 0;
                          puVar12[1] = 0;
                          puVar12[2] = 0;
                          puVar12[3] = 0;
                          puVar12[4] = 0;
                          puVar12[5] = 0;
                          puVar12[6] = 0;
                          puVar12[7] = 0;
                          puVar12[8] = 0;
                          puVar12[9] = 0;
                          puVar12[10] = 0;
                          puVar12[0xb] = 0;
                          pppppppiVar29 = (int *******)pppppppiVar27[2];
                          iVar7 = iVar7 + 0xc;
                          if (pppppppiVar29 <= pppppppiVar18) break;
                          ppppppiVar25 = pppppppiVar27[7];
                        }
                        iVar7 = *(int *)(pcVar6 + 0x239fc);
                        pppppppiVar20 = (int *******)0x0;
                        if (pppppppiVar29 != (int *******)0x0) {
                          ppppppiVar25 = pppppppiVar27[6];
                          pppppppiStack_188 = (int *******)0x0;
                          iStack_190 = 0;
                          while (pppppppiVar20 = *(int ********)((int)ppppppiVar25 + iStack_190 + 8)
                                , *(int *)((int)ppppppiVar25 + iStack_190 + 4) < 1) {
LAB_00052974:
                            pppppppiStack_188 = (int *******)((int)pppppppiStack_188 + 1);
                            iStack_190 = iStack_190 + 0xc;
                            if (pppppppiVar29 <= pppppppiStack_188) goto LAB_00052998;
                          }
                          iVar23 = 0;
                          pppppppiVar18 = pppppppiVar20;
                          while (pppppppiVar29 = pppppppiStack_188,
                                iVar13 = (*(code *)(iVar7 + 0x3360))
                                                   (pppppppiVar27[7] + (int)*pppppppiVar18 * 3,
                                                    pppppppiStack_188), iVar13 != 0) {
                            ppppppiVar25 = pppppppiVar27[6];
                            iVar23 = iVar23 + 1;
                            pppppppiVar18 = pppppppiVar18 + 1;
                            if (*(int *)((int)ppppppiVar25 + iStack_190 + 4) <= iVar23) {
                              pppppppiVar29 = (int *******)pppppppiVar27[2];
                              goto LAB_00052974;
                            }
                          }
                          pppppppiVar18 = (int *******)0xc;
                          goto LAB_000521d4;
                        }
                      }
LAB_00052998:
                      pppppppiStack_178 = (int *******)0x0;
                      if (((((uint)pppppppiVar24[0x16] & 0x20000000) != 0) && (uVar28 == 0)) &&
                         (pppppppiVar5[5] == (int ******)0x0)) {
                        pppppppiVar20 = (int *******)pppppppiVar24[2];
                        if (pppppppiVar20 != (int *******)0x0) {
                          pppppppiVar18 = (int *******)(*(int *)(pcVar6 + 0x23694) + 0x2fcc);
                          uVar28 = (uint)(*(byte *)(*pppppppiVar24 + 1) < 0xd);
                          if (uVar28 != 0) {
                    /* WARNING: Could not recover jumptable at 0x00052dc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                            pppppppiVar27 =
                                 (int *******)
                                 (*(pcVar6 + (int)(pppppppiVar18[*(byte *)(*pppppppiVar24 + 1)] +
                                                  0xad97)))();
                            return pppppppiVar27;
                          }
                          goto switchD_00052dc0_caseD_0;
                        }
                        pppppppiVar24[0x17] = (int ******)0x1;
                        *(byte *)(pppppppiVar24 + 0x16) =
                             *(byte *)(pppppppiVar24 + 0x16) & 0x9f |
                             (0 < (int)pppppppiVar24[0x13]) << 6;
                      }
                      ppppppiVar25 = (int ******)pppppppiVar24[0xd][3][7];
                      pppppppiVar24[0x12] = ppppppiVar25;
                      pppppppiVar18 = (int *******)(pppppppiVar24[6] + (int)ppppppiVar25 * 3);
                      pppppppiVar29 = (int *******)FUN_000469e0(pppppppiVar19,pppppppiVar18);
                      pppppppiVar27 = pppppppiVar29;
                      apppppppiStack_174[0] = pppppppiVar29;
                      if (pppppppiVar29 == (int *******)0x0) {
                        if ((0 < (int)pppppppiVar24[0x13]) && (0 < iStack_168)) {
                          iVar23 = 0;
                          iVar7 = iStack_168;
                          do {
                            ppppppiVar25 = *pppppppiVar24 + piStack_164[iVar23] * 2;
                            iVar13 = 0;
                            piVar14 = piStack_164;
                            if (*(char *)(ppppppiVar25 + 1) == '\x04') {
                              while ((ppppppiVar8 = *pppppppiVar24 + *piVar14 * 2,
                                     *(char *)(ppppppiVar8 + 1) != '\t' ||
                                     (*ppppppiVar8 != *ppppppiVar25))) {
                                iVar13 = iVar13 + 1;
                                piVar14 = piVar14 + 1;
                                if (iVar7 == iVar13) goto LAB_00052a54;
                              }
                              pppppppiVar20 =
                                   (int *******)*pppppppiVar24[5][piStack_164[iVar23] * 3 + 2];
                              pppppppiVar27 = pppppppiVar20;
                              iVar13 = FUN_00045230(iVar7,&piStack_164);
                              if (iVar13 != 0) goto LAB_00052a54;
                              pppppppiVar18 =
                                   (int *******)(pppppppiVar24[6] + (int)pppppppiVar27 * 3);
                              pppppppiVar27 = (int *******)FUN_000459ac(pppppppiVar19,pppppppiVar18)
                              ;
                              if (pppppppiVar27 != (int *******)0x0) goto LAB_00052abc;
                              iVar23 = 1;
                              iVar7 = iStack_168;
                            }
                            else {
LAB_00052a54:
                              iVar23 = iVar23 + 1;
                            }
                          } while (iVar23 < iVar7);
                        }
                        pppppppiVar18 = pppppppiVar24;
                        pppppppiVar20 = pppppppiVar19;
                        ppppppiVar25 = (int ******)
                                       FUN_00046cac(apppppppiStack_174,pppppppiVar24,pppppppiVar19,0
                                                   );
                        pppppppiVar24[9] = ppppppiVar25;
                        pppppppiVar27 = apppppppiStack_174[0];
                        if (ppppppiVar25 != (int ******)0x0) {
                          if (((uint)ppppppiVar25[0xd] & 0x1000000) == 0) {
                            pppppppiVar24[0xc] = ppppppiVar25;
                            pppppppiVar24[0xb] = ppppppiVar25;
                            pppppppiVar24[10] = ppppppiVar25;
                            pcVar32 = *(code **)(pcVar6 + 0x23cd8);
                            pppppppiVar19 = pppppppiVar20;
                          }
                          else {
                            ppppppiVar25 = (int ******)
                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,
                                                        pppppppiVar19,1);
                            pppppppiVar24[10] = ppppppiVar25;
                            ppppppiVar25 = (int ******)
                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,
                                                        pppppppiVar19,2);
                            pppppppiVar24[0xb] = ppppppiVar25;
                            pppppppiVar18 = pppppppiVar24;
                            ppppppiVar25 = (int ******)
                                           FUN_00046cac(apppppppiStack_174,pppppppiVar24,
                                                        pppppppiVar19,6);
                            pppppppiVar24[0xc] = ppppppiVar25;
                            pppppppiVar20 = pppppppiVar19;
                            pppppppiVar27 = apppppppiStack_174[0];
                            if (((pppppppiVar24[10] == (int ******)0x0) ||
                                (pppppppiVar24[0xb] == (int ******)0x0)) ||
                               (pcVar32 = *(code **)(pcVar6 + 0x23cd8),
                               ppppppiVar25 == (int ******)0x0)) goto LAB_00052abc;
                          }
                          (*pcVar32)(piStack_164);
                          pppppppiVar20 = pppppppiVar19;
                          pppppppiVar27 = pppppppiVar29;
                        }
                      }
LAB_00052abc:
                      ppppppiVar25 = *pppppppiVar5;
                      pppppiVar17 = ppppppiVar25[0xe];
                      pcVar32 = *(code **)(pcVar6 + 0x23cd8);
                      pppppppiStack_178 = pppppppiVar27;
                      if (pppppiVar17 != (int *****)0x0) {
                        do {
                          pppppiVar17 = (int *****)*pppppiVar17;
                          (**(code **)(pcVar6 + 0x23cd8))();
                        } while (pppppiVar17 != (int *****)0x0);
                        pcVar32 = *(code **)(pcVar6 + 0x23cd8);
                      }
                      ppppppiVar25[0x10] = (int *****)0x1f;
                      ppppppiVar25[0xe] = (int *****)0x0;
                      ppppppiVar25[0xd] = (int *****)0x0;
                      (*pcVar32)(ppppppiVar25[4]);
                      ppppppiVar25[4] = (int *****)0x0;
                      FUN_00044d40(&pppppppiStack_160);
                      pppppppiVar27 = pppppppiStack_178;
                      if (pppppppiStack_178 != (int *******)0x0) goto joined_r0x00052b2c;
                      goto LAB_000526ec;
                    }
                    pppppppiVar27 = (int *******)*pppppppiVar5;
                    goto LAB_00052c64;
                  }
                  goto LAB_000525f4;
                }
              }
            }
            goto LAB_000521d4;
          }
LAB_00052c64:
          pppppppiStack_178 = (int *******)0xc;
        }
        goto LAB_000521dc;
      }
      pppppppiVar18 = (int *******)FUN_00043278(&pppppppiStack_160,pppppppiVar29);
      if (pppppppiVar18 == (int *******)0x0) {
        pppppppiVar18 = (int *******)(uint)bStack_115;
        ppppppiVar25 = pppppppiVar24[0x17];
        pppppppiVar4 = pppppppiVar29;
        goto LAB_00052158;
      }
LAB_000521d4:
      pppppppiVar27 = (int *******)*pppppppiVar5;
      pppppppiStack_178 = pppppppiVar18;
LAB_000521dc:
      ppppppiVar25 = pppppppiVar27[0xe];
      pcVar32 = *(code **)(pcVar6 + 0x23cd8);
      if (ppppppiVar25 != (int ******)0x0) {
        do {
          ppppppiVar25 = (int ******)*ppppppiVar25;
          (**(code **)(pcVar6 + 0x23cd8))();
        } while (ppppppiVar25 != (int ******)0x0);
        pcVar32 = *(code **)(pcVar6 + 0x23cd8);
      }
      pppppppiVar27[0x10] = (int ******)0x1f;
      pppppppiVar27[0xe] = (int ******)0x0;
      pppppppiVar27[0xd] = (int ******)0x0;
      (*pcVar32)(pppppppiVar27[4]);
      pppppppiVar27[4] = (int ******)0x0;
      FUN_00044d40(&pppppppiStack_160);
      pppppppiVar18 = pppppppiVar29;
joined_r0x00052b2c:
      if (iVar10 != 0) {
        (**(code **)(pcVar6 + 0x23d08))(pppppppiVar24 + 0x22);
      }
    }
    else {
      pppppppiVar18 = (int *******)0x0;
      iVar7 = (**(code **)(pcVar6 + 0x23cb0))(pppppppiVar24 + 0x22,0);
      if (iVar7 != 0) goto LAB_000526c8;
      if (pppppppiStack_178 == (int *******)0x0) goto LAB_000520dc;
    }
  }
  else {
LAB_000526c8:
    pppppppiStack_178 = (int *******)0xc;
  }
  FUN_000499a0(pppppppiVar24);
  *pppppppiVar5 = (int ******)0x0;
  pppppppiVar5[1] = (int ******)0x0;
  pppppppiVar27 = pppppppiStack_178;
LAB_000526ec:
  if (uStack_10c == *puVar31) {
    return pppppppiVar27;
  }
  uVar28 = uStack_10c;
  (**(code **)(pcVar6 + 0x23c84))();
switchD_00052dc0_caseD_0:
  pcVar6 = *(code **)(pcVar6 + 0x23adc);
  (*pcVar6)();
  *(byte *)(pppppppiVar20 + 7) =
       *(byte *)(pppppppiVar20 + 7) & 0xf6 |
       (byte)(((uint)(**(int **)(pcVar6 + 0x22a58) << 6) >> 0x1f) << 3) | 1;
  iVar10 = FUN_00051f24(pppppppiVar20,uVar28,pppppppiVar18);
  if (iVar10 == 0) {
    return (int *******)0x0;
  }
                    /* WARNING: Could not recover jumptable at 0x00052fb0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  pppppppiVar27 =
       (int *******)
       (**(code **)(pcVar6 + 0x22c8c))
                 (0,*(int *)(pcVar6 + 0x22694) + 0x30c8 +
                    *(int *)(iVar10 * 4 + *(int *)(pcVar6 + 0x22694) + 0x3084),5);
  return pppppppiVar27;
LAB_00052628:
  while( true ) {
    pppppppiVar22 = (int *******)0x0;
    iVar23 = 0;
    bVar1 = false;
    if (pppppppiVar27[6][1] != (int *****)0x0) break;
LAB_00052650:
    pppppppiVar29 = pppppppiVar27;
    pppppppiVar20 = pppppppiVar22;
    pppppppiVar18 =
         (int *******)(*(code *)(iVar7 + 0x5bf8))(pppppppiVar19,pppppppiVar27,pppppppiVar22,1);
    if (pppppppiVar18 != (int *******)0x0) goto LAB_000521d4;
    pppppppiVar22 = (int *******)((int)pppppppiVar22 + 1);
    if (*(int *)((int)pppppppiVar27[6] + iVar23 + 4) != 0) {
      pppppppiVar18 = (int *******)pppppppiVar27[2];
      goto LAB_000525ec;
    }
    (**(code **)(pcVar6 + 0x23cd8))(piStack_164);
    pppppppiVar18 = (int *******)pppppppiVar27[2];
    if (pppppppiVar18 != pppppppiVar22) {
      bVar1 = true;
      goto LAB_000525f4;
    }
  }
  goto LAB_00052614;
}

